首页 > 解决方案 > 根据前一行值对 Pandas Dataframe 进行排序

问题描述

我有一个看起来像这样的数据框:

Name      Previous Name
Alice     NaN
Charlie   Bob
Bob       Alice
Fred      Eddy
Danny     Charlie
Eddy      Dan

我想对数据框进行排序,如下所示:

Name      Previous Name
Alice     NaN
Bob      Alice
Charlie  Bob
Danny    Charlie
Eddy     Danny
Fred     Eddy

我知道布尔测试涉及类似

dataframe['Value'] = dataframe['PreviousValue'].shift(1)

但是我怎样才能将其用作排序标准呢?

编辑:将示例从字母更改为名称

标签: pythonpandasdataframesorting

解决方案


排序值,然后移位:

df = df.sort_values('Value')
df['Previous Value'] = df['Value'].shift()

输出:

  Value Previous Value
0     A            NaN
2     B              A
1     C              B
4     D              C
5     E              D
3     F              E

推荐阅读