我有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 :(得分: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