按其他索引的顺序对Pandas Dataframe进行排序

AJG519:

假设我有两个共享相同索引的数据框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

有没有更优雅的方式做到这一点?

谢谢!

克里斯布

reindex 会起作用-请注意,它将为df而不是df2中的索引值创建缺失值。

In [18]: df2.reindex(df.index)
Out[18]: 
                 D
Arizona     Orange
New Mexico   Green
Colorado      Blue

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何按索引对Pandas DataFrame排序?

用不同的顺序对两列的Spark Dataframe进行排序

按列表顺序对pandas DataFrame排序

pandas Dataframe groupby,按绝对值对组进行排序

对Pandas Dataframe列中的列表进行排序

按特定数组的顺序对其他数组进行排序?

如何在MATLAB中按其他向量的顺序对矩阵的列进行排序?

如何在Python中按日期对DataFrame进行排序?

Python-按字母顺序对列表列表中的列表项进行排序,并让其他列表遵循交换顺序

按特定顺序对Pandas DataFrame中的列进行排序

如何按其他列表的排序顺序对Scala对象列表进行排序?

在一列中按出现顺序对DataFrame进行排序,而在其他列中保留顺序

如何按索引顺序拆分pandas.DataFrame?

在csv txt或任何其他文件中按字母顺序对行进行排序

同时按列索引和行索引对Pandas DataFrame进行排序

如何在不更改其他级别顺序的情况下按一个级别对MultiIndex进行排序

按索引对大熊猫数据框进行排序,然后按字母顺序排序

Javascript按其他数组的顺序排序

按其他两列确定的顺序对一列进行排序(“映射”)

在Pandas DataFrame中对列进行排序

按其他NSMutableDictionary对NSArray进行排序

按多列和重复索引对pandas DataFrame进行排序

按列中的名称对pandas DataFrame中的数据进行排序

按MultiIndex的一级对pandas DataFrame进行排序

按其他数组中的值顺序对数组进行排序

如何按字母顺序对索引进行排序

根据列值对 Pandas Dataframe 进行排序

在 Pandas DataFrame 中按逗号数对列进行排序

按日期时间对象从 Jan 到 dec 对 DataFrame 进行排序