代码片段:
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测试了代码。
3条答案
按热度按时间u5rb5r591#
您可以在
DataFrame
构造函数中设置列名:字符串
或者:
型
或者在
DataFrame.to_csv
中设置参数header
:型
Series.to_csv
:型
hpxqektj2#
要将列名设置为'values',请尝试:
字符串
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")