Python实现Excel SUMIF等效功能:提取关键词并汇总成本
解决方法
你可以用explode方法拆分句子关键词并保留对应成本,再通过分组求和实现需求,完整代码如下:
import pandas as pd # 构造示例DataFrame sentence = pd.DataFrame({ "Sentence": ["Hi how are you", "Hi you there"], "成本": [2.5, 5] }) # 1. 将句子拆分为关键词列表,再展开为每行一个关键词,同时保留原成本 words_df = sentence.assign(keyword=sentence['Sentence'].str.split()).explode('keyword') # 2. 按关键词分组,汇总对应成本总和 result = words_df.groupby('keyword')['成本'].sum().reset_index() print(result)
运行后输出就是你要的结果:
keyword 成本 0 Hi 7.5 1 are 2.5 2 how 2.5 3 there 5.0 4 you 7.5
原代码问题说明
你之前的写法存在两个核心问题:
- 语法逻辑错误:
row["keyword"]没有定义,也没有实现逐关键词的遍历计算逻辑,直接调用会报错。 - 逻辑冗余:拆分关键词后已经和原成本一一对应,不需要再用
str.contains重新匹配,直接分组求和更高效简洁。
内容的提问来源于stack exchange,提问作者shanyh
相关产品推荐
相关产品推荐

