【发布时间】:2021-12-15 04:11:38
【问题描述】:
看来 pandas.to_csv 函数有两个属性,它们做同样的事情。
也许我错过了什么。
来自文档:
列:序列,可选
要写的列
header : 布尔值或字符串列表,默认为 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'] 是正确的选择。
【问题讨论】: