gpt4 book ai didi

python - 如何移动 pandas 数据框组中的列,然后连接回单个数据框?

转载 作者:行者123 更新时间:2023-12-01 08:18:35 24 4
gpt4 key购买 nike

如果我有这样的数据框:

category name index 
A A11 1
A A12 1
A A13 1
A A21 2
A A22 2
A A23 2
...
B B11 1
B B21 2
...

我想首先按类别和索引对数据帧进行分组,并且在每个组内我想按索引值(反向移位)- 1 移动 name 列。

所以结果会是这样的:

category name index 
A A11 1 # Do not shift anything because index is 1
A A12 1
A A13 1
A A22 2 # Shift -1 for anything in (A, 2) group because index here is 2
A A23 2
A A24 2
...
B B11 1
B NA 2 # at the end of each group it should be NA

我尝试使用 .groupby() 然后使用 .apply() 但似乎没有简单的方法将结果连接回数据帧。看来apply方法只能返回一个系列。我如何使用 apply 方法实现这一点?

最佳答案

如果我理解你的问题

l=[y.assign(name=y.name.shift(-x[1]+1).values) for x , y in df.groupby(['category','index'])]

Newdf=pd.concat(l)
Newdf
Out[644]:
category name index
0 A A11 1
1 A A12 1
2 A A13 1
3 A A23 2
4 A A24 2
5 A NaN 2

关于python - 如何移动 pandas 数据框组中的列,然后连接回单个数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54829480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com