假设我有两个共享相同索引的数据帧df1和df2。 df1按照我希望df2排序的顺序排序。
df=pd.DataFrame(index=['Arizona','New Mexico', 'Colorado'],columns=['A','B','C'], data=[[1,2,3],[4,5,6],[7,8,9]])
print df
A B C
Arizona 1 2 3
New Mexico 4 5 6
Colorado 7 8 9
df2=pd.DataFrame(index=['Arizona','Colorado', 'New Mexico'], columns=['D'], data=['Orange','Blue','Green'])
print df2
D
Arizona Orange
Colorado Blue
New Mexico Green
通过第一个数据框的索引对第二个数据帧进行排序的最佳/最有效方法是什么?
一个选项就是加入它们,排序,然后删除列:
df.join(df2)[['D']]
D
Arizona Orange
New Mexico Green
Colorado Blue
有更优雅的方式吗?
谢谢!
答案 0 :(得分:19)
reindex
会起作用 - 请注意它会为df的索引值创建缺失值,而不是df2。
In [18]: df2.reindex(df.index)
Out[18]:
D
Arizona Orange
New Mexico Green
Colorado Blue