pandas:dataframe到csv,如何设置列名

2024-04-19 14:38:08 发布

您现在位置:Python中文网/ 问答频道 /正文

代码段:

import numpy as np
import pandas as pd
myseries=pd.Series(np.random.randn(5))
df=pd.DataFrame(myseries)
df.to_csv("output.csv")

输出:

      0
0    0.51..
1    0.14..
2    -0.68..
3    0.48..
4    1.89..

我希望列名是“values”,而不是0。我该怎么做?
我想我应该用df.to_csv(“output.csv”,columns=[“values”])替换最后一个语句。但我得到了关键错误: u"None of [['values']] are in the [columns]" 我不知道那是什么意思。

[更新]
很多答案都说我应该使用df.columns=['values']。嗯,那对我不起作用。我关心的不仅是数据帧是什么样的,还有csv文件是什么样的。数据帧看起来没问题,但csv文件没有。这是令人困惑的部分。

...
df.columns=["values"]
df.to_csv("output.csv")

上面写着:IOError: [Errno 13] Permission denied: 'output.csv'.
然后我使用绝对路径“C:\ Users\myname\Desktop\output.csv”,错误如下:IOError: [Errno 13] Permission denied: 'C:\\Users\\myname\\Desktop\\output.csv' 我不知道为什么会出现这个错误,但这相当令人困惑。
为了获得更多信息,我在win10上安装了anaconda-2.7。我用spyder测试了代码。


Tags: columns文件csvto数据importdfoutput
3条回答

可以在DataFrame构造函数中设置列名:

df = pd.DataFrame(myseries, columns=['values'])
df.to_csv("output.csv")

或:

df = pd.DataFrame({'values':myseries})
print (df)
     values
0 -0.429758
1 -0.019931
2  1.189596
3  1.309223
4 -0.337061

df.to_csv("output.csv")

或者在^{}中设置参数header

df = pd.DataFrame(myseries)
df.to_csv("output.csv", header=['values'])

或者在^{}中:

myseries.to_csv("output.csv", header=['values'])

它给出以下错误:

says:IOError: [Errno 13] Permission denied: 'output.csv'.

我遇到了同样的错误,问题是我在Excel中打开了这个文件,因此当我的程序想用同样的文件名写入同一个目录时,我得到了这个错误。

若要将列名设置为“values”,请尝试:

    df.columns = ['values']

相关问题 更多 >