pandas 将 AB 组与 BA 结合,丢弃 BA

+-----------------------+----------------+--------------------+

| route_group_essential | essential_move | non-essential_move |

+-----------------------+----------------+--------------------+

| from_to               |                |                    |

| placeA>placeB         |           11.0 |               11.0 |

| placeB>placeA         |              0 |                2.0 |

| placeC>placeD         |            3.0 |                1.0 |

| placeD>placeC         |            2.0 |                1.0 |

+-----------------------+----------------+--------------------+



我想合并 A>B 和 B>A 行并对它的值求和,丢弃一行。


预期输出:



+-----------------------+----------------+--------------------+

| route_group_essential | essential_move | non-essential_move |

+-----------------------+----------------+--------------------+

| from_to               |                |                    |

| placeA>placeB         |           11.0 |               13.0 |

| placeC>placeD         |            5.0 |                2.0 |

+-----------------------+----------------+--------------------+


慕的地8271018
浏览 117回答 1
1回答

慕沐林林

Index如果第一列是索引,则由排序的元组创建新的帮助程序:g = df.index.map(lambda x: tuple(sorted(x.split('>'))))然后在聚合通过以下方式将索引转换为列之前DataFrame.reset_index:df = (df.reset_index()        .groupby(g)        .agg({'from_to':'first',              'essential_move':'sum',              'non-essential_move':'sum'})        .reset_index(drop=True))print (df)                from_to  essential_move  non-essential_move0         placeA>placeB            11.0                13.01         placeC>placeD             5.0                 2.0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python