在groupby pandas上对多个列应用shift进行比较

2024-03-29 06:55:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含多个列的数据框(原始数据):

raw_data = {'one': ['A', 'B', 'A', 'C', 'B', 'B', 'A', 'C', 'A', 'B', 'C', 'B'],'two' : [3,4,5,6,2,7,9,12,1,10,11,8],'three': ['bcd','qpv', 'cba','klm','zfv','klm','abc','abc','abc','lmf','fly','zdb'],'four':['cba','klm','tcf','fly','zfb','zdb','pcd','tlm','bcd','klm','mvt','jbm'], 'five':['apple','lemon','banana','water','kiwi','lemon','orange','apple','apple','straw','water','pom']}

df = pd.DataFrame(raw_data, columns = ['one', 'two', 'three','four','five'])

根据这个df,我可以生成新的列,或者直接将第3列和第5列移动1。在

输出:

1)按“一”分组

2)按“2”排序

3)将“three”上移1级,新列“three-Tun”

4)移位“五”1级,新列“五-新”

5)比较“four”与“three-tu-new”与“five-new”,如果两者都匹配 删除第一行并继续

6)groupby比较

输出如下:

^{pr2}$

初始数据框有12行,输出数据框有9行,根据上述条件过滤。请帮忙。在

谢谢


Tags: 数据appledatarawonethreefourabc