python - 如何对数据框中部分匹配的行进行分组?
问题描述
给定一个产品变体的 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 |
解决方案
尝试通过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
推荐阅读
- cuda - 在 Ubuntu 18.04 下无法将 cuda 示例与 clang++-9 链接
- python - 在熊猫中进行逆多热编码的最快方法是什么?
- python-3.x - 每次会话更改名称的 Selenium Select 输入框
- python - 我正在尝试访问“Energy Indicator.xls”
- ios - SwiftUI - 将 Firbase 数据库输出分配给数据模型
- java - @Inject on field 在 Guice 中给出 NullPointerException
- python - 当我在 exec() 函数中只插入字符串时,为什么突然出现类型错误?
- dynamics-crm - CRM365 & KingswaySoft - 如果 IsNew 为假(更新实体的情况),如何获取插入记录的 entityid?
- python - 使用 location_once_scrolled_into_view 并希望居中
- java - Struts 2(在 jsp 的迭代器之外使用 Select 会导致逗号附加在选择值上而不是重置它)