如何为pandas写的CSV添加自定义列标签?

时间:2015-02-25 14:36:52

标签: python csv pandas

我有一个简单的3列numpy数据,我打算用pandas

写入CSV
X = ([[ 0.63929417,  0.71804657,  0.62530184],
       [ 0.91736598,  0.42696823,  0.36432443],
       [ 0.34529593,  0.98629196,  0.19780149],
       [ 0.24696517,  0.62660763,  0.25418833],
       [ 0.63404232,  0.70276032,  0.88243513],
       [ 0.40073419,  0.93373199,  0.28116287],
       [ 0.43908317,  0.66116296,  0.33441886],
       [ 0.62667038,  0.88563705,  0.33575855],
       [ 0.24745741,  0.35070823,  0.59614696],
       [ 0.50416922,  0.79734483,  0.48907875]])

最后两行似乎都没有在CSV中写下列标签。

df = pd.Dataframe(X.values)
df.to_csv('test.csv', cols=['First','Second','Third'])
df.to_csv('test.csv',header=['First','Second','Third'])

2 个答案:

答案 0 :(得分:3)

在写df:

之前,您需要设置列名称
df = pd.Dataframe(X.values)
df.columns = ['First','Second','Third']
df.to_csv('test.csv')

cols被删除,并由columns替换,并允许您选择要写入的列。 header是True还是False,让您选择是否写入标题(即列名称)。 [编辑:它实际上也正如joris所说,也许不是你的熊猫版本]

edit2:如果您的pandas为0.8.0或更高,那么您的第二个解决方案应该可行。

Version 0.7.0 doesn't have that option

答案 1 :(得分:0)

不确定您使用的是哪个版本,但以下版本适用于最新版本:

df.to_csv(r'c:\data\sample.csv', header=['First','Second','Third'])

cols param选择已存在的列,以便无法查看文档:{​​{3}}

来自文档:

  

列:序列,可选的要写入的列

     

header:布尔值或字符串列表,默认为True Write out列   名。如果给出了一个字符串列表,则假定它是别名   列名