假设我有两个共享相同索引的数据帧,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
Run Code Online (Sandbox Code Playgroud)
通过第一个数据框的索引对第二个数据帧进行排序的最佳/最有效方法是什么?
一个选项是加入它们,排序,然后删除列:
df.join(df2)[['D']]
D
Arizona Orange
New Mexico Green
Colorado Blue
Run Code Online (Sandbox Code Playgroud)
有更优雅的方式吗?
谢谢!
chr*_*isb 21
reindex 会工作 - 请注意它会为df的索引值创建缺失值,而不是df2.
In [18]: df2.reindex(df.index)
Out[18]:
D
Arizona Orange
New Mexico Green
Colorado Blue
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7838 次 |
| 最近记录: |