首页 > 解决方案 > 如何对数据框中部分匹配的行进行分组?

问题描述

给定一个产品变体的 pandas 数据框及其描述、颜色 ID 和销售数量,我如何将这些变体分组到主要产品中并将每个产品的销售数量相加?您可以看到变体共享一些描述性文本,但颜色和大小不匹配。

输入数据(提取):

描述 颜色ID 售出数量
圆珠笔(蓝色) 3 100
包装盒 305x215x150mm 0 50
咖啡杯(白色) 1 45
圆珠笔(黑色) 2 220
包装盒 215x215x100mm 0 85
微修正液 10ml 0 80
咖啡杯 (黑色) 2 40

预期结果:

描述 售出数量
圆珠笔 320
包装盒 135
咖啡杯 85
微修正液 10ml 80

标签: pythonpandas

解决方案


尝试通过assign(),rsplit()groupby():

out=(df.assign(Description=df['Description'].str.rsplit(' ',1).str[0])
        .groupby('Description',as_index=False,sort=False)['Quantity Sold'].sum())

输出out

    Description         Quantity Sold
0   Rollerball pen          320
1   Packing Box             135
2   Coffee Mug              85
3   Micro Correct Fluid     80

推荐阅读