关于 pandas
在读取/写入csv文件时不遵守列的顺序,这里有很多问题,其中一些可以追溯到5年前(!):
根据this answer,这个"bug"修复了版本0.19.0但是我运行的是Python 3.6.4和 pandas
0.22.0,我仍然遇到这个问题 .
这是一个已存在多年的错误还是这个 pandas
如何工作?如果是这样,那么不保留列顺序的原因是什么?
您可以使用this csv file和以下代码重现该问题:
import pandas as pd
df = pd.read_csv(
"test.csv", usecols=('Author', 'Title', 'Abstract Note', 'Url'))
print(df)
请注意 'Url'
并未定位在 df
中的最后位置 .
1 回答
我相信这是对
usecols
的误解 . documentation并不建议列以参数中显示的相同顺序返回 .事实上,列的返回顺序与它们在文件中的顺序相同 .
当我们读取文件时:
我们看到相同的列顺序 .
而是使用所需顺序的列对结果数据帧进行切片 .