在Python Pandas DataFrame中保留列顺序

埃尔南:

有没有办法在使用Python Pandas进行读写时保留csv文件中列的顺序?例如,在此代码中

import pandas as pd

data = pd.read_csv(filename)
data.to_csv(filename)

输出文件可能会有所不同,因为未保留列。

CnrL:

当前版本的Pandas('0.11.0')中似乎存在一个错误,这意味着Matti John的答案将不起作用。如果您指定要写入文件的列,则它们将按字母顺序书写,而只是根据cols中的列表重新标记。例如,此代码:

import pandas
dfdict={}
dfdict["a"]=[1,2,3,4]
dfdict["b"]=[5,6,7,8]
dfdict["c"]=[9,10,11,12]
df=pandas.DataFrame(dfdict)
df.to_csv("dfTest.txt","\t",header=True,cols=["b","a","c"])

导致以下(错误)输出:

    b   a   c
0   1   5   9
1   2   6   10
2   3   7   11
3   4   8   12

您可以通过执行以下命令检查已安装的熊猫版本:

pandas.version.version

to_csv的文档在这里

实际上,这似乎是一个已知的错误,并将在即将发布的版本(0.11.1)中修复:

https://github.com/pydata/pandas/issues/3489

更新:仍然没有新版本的熊猫,但是这里描述了一种解决方法,它不需要使用其他版本的熊猫:

github.com/pydata/pandas/issues/3454

因此,将上面的代码块的最后一行更改为以下内容将可以正常工作:

df.to_csv("dfTest.txt","\t",header=True,cols=["b","a","c"], engine='python')

更新,似乎参数“ cols”已重命名为“ columns”,并且参数“ engine”在最近的熊猫版本中已被弃用(不再可用)。此外,此错误已在版本0.19.0中修复。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

[Pandas,Python]; 在空格分隔的数据框中保留空列

在pandas to_csv方法中保留列顺序

保留列顺序-Python Pandas和列Concat

Python Pandas:将选定的列保留为DataFrame而不是Series

从OrderedDict列表中构建Pandas DataFrame:保留列顺序

如何在python中的pandas系列中保留前导空格?

如何在IPython笔记本的pandas DataFrame列中保留对齐文本

当Pandas Dataframe.Combine或DataFrame.Combine_First时,可以保留列顺序吗?

Python Pandas:仅旋转DataFrame中的某些列,同时保留其他列

Python,Pandas:Datframe - 保留,不删除列

Python Pandas:使用groupby()和agg()时是否保留顺序?

Python:Pandas Dataframe使用通配符在列中查找字符串并保留行

Python pandas DataFrame-将具有相同信息的行保留在3列中

如何聚合 DataFrame 以保留日期最高的行并在 Python Pandas 中添加新列?

在 Python 中保留二进制矩阵中值的顺序

Pandas groupby sum,在结果数据框中保留特定列

Python:Pandas Dataframe,groupby 但保留其他缺失值

Python Pandas DataFrame索引

Python Pandas Dataframe融化

填充DataFrame Pandas Python

Python Pandas DataFrame拆分

python保留输出csv文件的列顺序

Python 重命名 Pandas DataFrame 列

Python Pandas DataFrame列插入调用

在Pandas DataFrame Python中创建子列

python,pandas,dataframe,行到列

在Pandas DataFrame Python中添加新列

Python:使用 Pandas Dataframe 中的列

在pandas dataframe python列中搜索单词