在Pandas中排序列名

时间:2018-06-01 11:20:34

标签: python pandas

我对DataFrame的行为感到有些困惑

例如:

df = pd.DataFrame(data=np.random.random(size=(5,3)), 
                  columns={'a', 'b', 'c'})

默认输出为什么:

df =      c         a         b
0  0.325172  0.831253  0.151912
1  0.558476  0.177249  0.906136
2  0.516089  0.069013  0.370251
3  0.440246  0.154116  0.494690
4  0.793981  0.409526  0.885879

而不是列的有序列表('a','b','c')

(Python 3.6,Pandas 0.23)

1 个答案:

答案 0 :(得分:3)

您传递的set列名称不一定会保留订单,如果您传递了list,那么它会按您的要求执行:

In[32]:
df = pd.DataFrame(data=np.random.random(size=(5,3)), 
                  columns=['a', 'b', 'c'])
df

Out[32]: 
          a         b         c
0  0.227711  0.410568  0.795012
1  0.624751  0.708471  0.152641
2  0.901483  0.967297  0.884749
3  0.353622  0.220706  0.031015
4  0.628634  0.128421  0.679261