看来pandas.to-csv函数有两个属性,这两个属性做了相同的事情。
也许我错过了什么。
从文档中:
columns : sequence, optional
Columns to write
header : boolean or list of string, default True
Write out column names. If a list of string is given it is assumed to be aliases for the column names
当给出列的列表时,它们将列按我指定的顺序排列。
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']
是正确的选择。
在写这个问题的时候,我意识到了答案,我想我会马上分享。
我的示例数据没有显示问题
使用列时,列顺序会更改,包括标题和值。
使用header,header会更改,但不会更改列中的值。
如果你把
columns=
和header=
搞混了,你会过得很不愉快。相关问题 更多 >
编程相关推荐