导出 pandas DataFrame 时如何删除列名行?
Posted
技术标签:
【中文标题】导出 pandas DataFrame 时如何删除列名行?【英文标题】:How do you remove the column name row when exporting a pandas DataFrame? 【发布时间】:2013-11-15 21:23:34 【问题描述】:假设我将以下 Excel 电子表格导入数据框:
Val1 Val2 Val3
1 2 3
5 6 7
9 1 2
如何删除列名行(在本例中为 Val1, Val2, Val3
),以便导出没有列名的 csv,仅导出数据?
我试过df.drop()
和df.ix[1:]
都没有成功。
【问题讨论】:
'column name row' 称为'header'。大多数像to_csv()
这样的读/写命令都有一个选项header
来控制它,例如header = None
【参考方案1】:
想出了一个办法:
df.to_csv('filename.csv', header = False)
这告诉 pandas 写一个没有标题的 csv 文件。你可以对 df.to_excel 做同样的事情。
【讨论】:
不,the option was changed toheader=None
way back in pandas 0.17 (2015)【参考方案2】:
您可以使用 header=False
写入不带标头的 csv 并使用 index=False
不带索引。如果需要,您还可以使用sep
修改分隔符。
没有标题行的CSV示例,省略了标题行:
df.to_csv('filename.csv', header=False)
TSV(制表符分隔)示例,省略索引列:
df.to_csv('filename.tsv', sep='\t', index=False)
【讨论】:
【参考方案3】:如果你传递 header=False,你会得到这个错误
TypeError: Passing a bool to header is invalid. Use header=None
for no header or header=int or list-like of ints to specify the
row(s) making up the column names
改为使用 header=None
【讨论】:
这似乎不再是真的。 The option was changed toheader=None
way back in pandas 0.17 (2015)
它在某个时候被改回来了。 header=False 适用于 pandas 1.1.1以上是关于导出 pandas DataFrame 时如何删除列名行?的主要内容,如果未能解决你的问题,请参考以下文章
如何以附加模式导出 DataFrame to_json - Python Pandas?
Pandas Dataframe - 如何检查列中数值的符号,如果为负则删除符号并在发生这种情况时创建另一列?
如何在使用 pandas.read_csv 读取 csv 文件时将 pandas.dataframe 中的元素转换为 np.float?
如何在使用 pandas.read_csv 读取 csv 文件时将 pandas.dataframe 中的元素转换为 np.float?
Elasticsearch:将数据从 Elasticsearch 和 Kibana 导出到 Pandas Dataframe