+-----------------------+----------------+--------------------+| 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 |+-----------------------+----------------+--------------------+
1 回答
慕沐林林
TA贡献2016条经验 获得超9个赞
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_move
0 placeA>placeB 11.0 13.0
1 placeC>placeD 5.0 2.0
添加回答
举报
0/150
提交
取消
