如何在Pandas中拆分列字符串并按类别汇总销售数量?
提取Sales列数值并按Category分组求和的解决方案
步骤1:构造数据(若未加载)
先将你的数据转换为Pandas DataFrame:
import pandas as pd data = { 'Category': ['Table', 'Chair', 'Cushion', 'Table', 'Chair', 'Mats'], 'Sales': ['1 table', '3chairs', '8 cushions', '3Tables', '12 Chairs', '12Mats'], 'Paid': ['Yes', 'Yes', 'Yes', 'Yes', 'No', 'Yes'] } df = pd.DataFrame(data)
步骤2:提取Sales列中的数字
有两种实用方法提取数值:
方法一:正则表达式(简洁高效)
用str.extract匹配字符串中的连续数字,转换为整数类型:
df['Sales_Quantity'] = df['Sales'].str.extract('(\d+)').astype(int)
方法二:apply+lambda(手动提取数字字符)
如果你偏好使用apply结合lambda函数,可遍历每个字符串筛选数字字符:
df['Sales_Quantity'] = df['Sales'].apply(lambda x: int(''.join([c for c in x if c.isdigit()])))
步骤3:按Category分组求和
通过groupby对提取出的数值列分组求和:
# 分组求和后重置索引,生成规整的结果表 summary = df.groupby('Category')['Sales_Quantity'].sum().reset_index() # 打印结果 print(summary)
最终输出
Category Sales_Quantity 0 Chair 15 1 Cushion 8 2 Mats 12 3 Table 4
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

