2015-11-02 56 views
2

我有兩個數據框,每列一列。第一個的索引是[C,B,F,A,Z]未按任何方式排序。第二個索引是[C,B,Z],也未排序。如何在大熊貓中對索引進行排序

我使用pd.concat([df1,df2],axis=1)並得到一個數據框有2列和NaN在第二列沒有適當的索引值。

我遇到的問題是索引自動按字母順序排序。 我試過= pd.concat([df1,df2],axis=1, names = my_list)其中my_list = [C,B,F,A,Z],但沒有做任何改變。

如何指定索引不排序?

+0

你能不能做到'pd.concat([DF1 ,DF2],軸= 1).reindex(df.index)'? – EdChum

+0

這很有效,謝謝。出於某種原因沒有考慮到它 – AK9309

+0

我想它會對所有的dfs索引進行排序,以便將它們對齊到索引上更容易,在執行此操作時可能沒有太多要求保留索引順序 – EdChum

回答

3

這似乎是在設計上,我建議的唯一一件事就是打電話對所連接的DF reindex和傳遞的df指數:

In [56]: 
df = pd.DataFrame(index=['C','B','F','A','Z'], data={'a':np.arange(5)}) 
df 

Out[56]: 
    a 
C 0 
B 1 
F 2 
A 3 
Z 4 

In [58]: 
df1 = pd.DataFrame(index=['C','B','Z'], data={'b':np.random.randn(3)}) 
df1 

Out[58]: 
      b 
C -0.146799 
B -0.227027 
Z -0.429725 

In [67]: 
pd.concat([df,df1],axis=1).reindex(df.index) 

Out[67]: 
    a   b 
C 0 -0.146799 
B 1 -0.227027 
F 2  NaN 
A 3  NaN 
Z 4 -0.429725