在Python中查找前一个值并创建新列

dbf7pr2w  于 2023-04-22  发布在  Python
关注(0)|答案(1)|浏览(161)

我有一个数据集,我想返回并查看按组更改的前一个值,并使用前一个值创建一个新列。
样本数据:

Group  Value        
   01    10
   01    10
   01    10
   02    5
   02    5
   02    15
   03    20
   03    25
   03    15
   03    15

预期输出:

Group     Value    Previous_Value
 01         10                 
 01         10     
 01         10
 02         5
 02         5
 02         15          5 
 03         20
 03         25         20
 03         15         25
 03         15

我已经进口了Pandas和numpy。有什么建议吗?

2w2cym1i

2w2cym1i1#

尝试:

# the previous values
shifted = df.groupby('Group')['Value'].shift()

# mask the values only where the `Value` changes, not the `Group` changes
df['Previous_Value'] = shifted.where(shifted.notna() & shifted.ne(df['Value']))

输出:

Group  Value  Previous_Value
0      1     10             NaN
1      1     10             NaN
2      1     10             NaN
3      2      5             NaN
4      2      5             NaN
5      2     15             5.0
6      3     20             NaN
7      3     25            20.0
8      3     15            25.0
9      3     15             NaN

相关问题