为什么数据帧列顺序的pandas会自动更改?

时间:2016-12-21 02:42:24

标签: python pandas dataframe

当我将结果输出到CSV文件时,我生成了一个pandas数据帧。但是数据框列顺序自动改变了,我很好奇为什么会发生这种情况?

问题图片:

enter image description here

2 个答案:

答案 0 :(得分:1)

我注意到你使用字典。

python中的字典无法保证以任何顺序排列。这取决于多种因素,包括阵列中的内容。密钥保证是独一无二的

答案 1 :(得分:1)

正如Youn Elan指出的那样,python词典没有被排序,所以如果你使用字典来提供你的数据,列将最终随机排序。您可以使用columns参数明确设置列的顺序:

import pandas as pd

before = pd.DataFrame({'lake_id': range(3), 'area': (['a', 'b', 'c'])})
print 'before'
print before

after = pd.DataFrame({'lake_id': range(3), 'area': (['a', 'b', 'c'])},
                     columns=['lake_id', 'area'])
print 'after'
print after

结果:

before
  area  lake_id
0    a        0
1    b        1
2    c        2
after
   lake_id area
0        0    a
1        1    b
2        2    c