您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python Pandas DataFrame中保留列顺序

在Python Pandas DataFrame中保留列顺序

当前版本的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中修复。

python 2022/1/1 18:26:52 有454人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶