似乎 pandas.to_csv 函数有两个属性执行相同的操作。也许我漏掉了什么。根据文档:
columns: 序列,可选项 要写入的列 header: boolean 或 string 列表,默认为 True 写出列名。如果给出字符串列表,则假定为列名的别名。
当给出列的列表时,它们按照我指定的顺序放置在列中。
columns: 序列,可选项 要写入的列 header: boolean 或 string 列表,默认为 True 写出列名。如果给出字符串列表,则假定为列名的别名。
当给出列的列表时,它们按照我指定的顺序放置在列中。
import pandas as pd
from StringIO import StringIO
df = pd.DataFrame({"foo":[1,2], "bar":[1,2]})
sio = StringIO()
df.to_csv(sio)
sio.getvalue()
',bar,foo\n0,1,1\n1,2,2\n'
sio = StringIO()
df.to_csv(sio, header=['foo', 'bar'])
sio.getvalue()
',foo,bar\n0,1,1\n1,2,2\n'
sio.close()
sio = StringIO()
df.to_csv(sio, columns=['foo', 'bar'])
sio.getvalue()
',foo,bar\n0,1,1\n1,2,2\n'
sio.close()
如果我只想排序列顺序,使用哪一个是适当的?
我唯一看到这两个命名属性不同有意义的情况是,如果我想选择列,但是不将标题写入csv文件。
这意味着使用 columns=['foo', 'bar']
是正确的选项。