我的dataframe看起来像这样:
A B C D E F G H I J
FP002 12 FP001 113 406 519 85 82 FP001 6240
FP003 7610 FP002 99 552 651 49 64 FP002 12294
FP005 12, FP003 102 131 1416 24 89 FP003 761
FP005 1250 FP004 94 739 833 122 215 FP004 400
我希望我的输出是这样的:
A B C D E F G H I J
FP002 12 FP002 99 552 651 49 64 FP002 12294
FP003 7610 FP003 102 1314 1416 247 89 FP003 761
FP005 12,
FP005 1250
所以基本上保留了A列后面的行。
我的代码是这样的:
dfR = df1.join( df1 ,on=['A','C'], how='inner')
但它没有给我想要的结果
1条答案
按热度按时间7fhtutme1#
您可以在
axis=1
上使用groupby
拆分块,在使用groupby.cumcount
进行重复数据删除后,使用functools.reduce
拆分join
:输出量:
请注意,
axis=1
上的groupby
将来将被弃用,正确的方法是:传递给
reduce
以执行左连接的中间体:注意:你也可以使用其他逻辑来形成组,例如,当数据不是数字时开始分组:
甚至完全手动:
或者使用一个显式的索引列表: