pandas:如何设置列名,将其转换为_csv

pw9qyyiw  于 5个月前  发布在  其他
关注(0)|答案(3)|浏览(52)

代码片段:

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”])替换最后一条语句。但是我得到了keyerror: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测试了代码。

u5rb5r59

u5rb5r591#

您可以在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")


或者在DataFrame.to_csv中设置参数header

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


Series.to_csv

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

hpxqektj

hpxqektj2#

要将列名设置为'values',请尝试:

df.columns = ['values']

字符串

xvw2m8pv

xvw2m8pv3#

处理您的问题:
1.列重命名-我发现在Python 3.6+与兼容的Pandas版本中,df.columns = ['values']在输出到csv时工作正常。注意,这不会给索引列给予标题(参见下面的3)
1.写输出.csv文件时的权限问题-这几乎总是与在电子表格或编辑器中打开csv文件有关。有时你也会得到一个无声的失败,它说它写了,但csv保持不变。失败了,检查存储文件的目录和文件权限。有些操作系统喜欢您先创建文件(touch output.csv).如果你是从cron或其他批处理文件运行python,请检查哪个用户正在运行代码,并检查该用户的权限。
1.删除索引列- * 如果 * 您想给予索引名称,则使用df.to_csv("output.csv", index_label="whatever_name_you_want")

相关问题