首页 > 解决方案 > 按另一个数据帧中的列对熊猫数据帧进行排序 - 熊猫

问题描述

假设我有一个包含两列的 Pandas DataFrame,例如:

df = pd.DataFrame({'a': [1, 2, 3, 4], 'b': [100, 200, 300, 400]})
print(df)

   a    b
0  1  100
1  2  200
2  3  300
3  4  400

假设我也有一个熊猫系列,比如:

s = pd.Series([1, 3, 2, 4])
print(s)

0    1
1    3
2    2
3    4
dtype: int64

如何对a列进行排序以使其与系列的顺序相同s,并将相应的行值排序在一起?

我想要的输出是:

   a    b
0  1  100
1  3  300
2  2  200
3  4  400

有什么办法可以做到这一点?

请检查下面的自我回答。

标签: pythonpandasdataframesortingseries

解决方案


关于什么:

(
    df.assign(s=s)
    .sort_values(by='s')
    .drop('s', axis=1)
)

推荐阅读