如何使用pandas将用户定义的列名写入csv文件?

时间:2014-02-06 22:55:13

标签: python csv pandas

在将数据透视表写入csv文件时,是否可以编写自己的列名?

import pandas as pd

c1 = ['a','a','a','a','b','b','b','b']
c2 = ['x','x','y','y','x','x','y','y']
c3 = [1, 2, 1, 2, 1, 2, 1, 2]
val = [85, 47, 29, 93, 15, 21, 65, 16]

df = pd.DataFrame({'c1':c1, 'c2':c2, 'c3':c3, 'val':val})

ptable = pd.pivot_table(data=df, cols=['c2','c3'], rows='c1')

我尝试使用header参数:

ptable.to_csv('test.csv', header=['n1','n2','n3','n4'])

但是列名没有改变......

2 个答案:

答案 0 :(得分:3)

以下是解决方法:在致电ptable之前更改to_csv的列:

ptable = pd.pivot_table(data=df, cols=['c2','c3'], rows='c1')
ptable.columns = ['n1','n2','n3','n4']
ptable.to_csv('/tmp/test.csv')

答案 1 :(得分:1)

在写作之前重命名:

ptable.columns=['n1','n2','n3','n4']
ptable.to_csv(r'c:\data\test.csv')

事实上它应该传递header参数的列表,不知道为什么,可能是一个bug