Python 合并和求和类似的CSV条目
假设我的CSV文件如下所示:Python 合并和求和类似的CSV条目,python,Python,假设我的CSV文件如下所示: 爱,就像,200 爱,就像,50 说,索赔,30 其中数字代表这些单词在不同上下文中同时出现的次数 我想把类似单词的计数合并起来。所以我想输出如下内容: 爱,就像,250 说,索赔,30 我一直在环顾四周,但似乎我被这个简单的问题困住了。没有看到确切的CSV,很难知道什么是合适的。下面的代码假设最后一个标记是一个计数,它匹配最后一个逗号之前的所有标记 # You'd need to replace the below with the appropriate
- 爱,就像,200
- 爱,就像,50
- 说,索赔,30
- 爱,就像,250
- 说,索赔,30
我一直在环顾四周,但似乎我被这个简单的问题困住了。没有看到确切的CSV,很难知道什么是合适的。下面的代码假设最后一个标记是一个计数,它匹配最后一个逗号之前的所有标记
# You'd need to replace the below with the appropriate code to open your file
file = """love, like, 200
love, like, 50
love, 20
say, claim, 30"""
file = file.split("\n")
words = {}
for line in file:
word,count=line.rsplit(",",1) # Note this uses String.rsplit() NOT String.split()
words[word] = words.get(word,0) + int(count)
for word in words:
print word,": ",words[word]
并输出:
say, claim : 30
love : 20
love, like : 250
根据您的应用程序具体是什么,我想我实际上会建议您在这里使用计数器。计数器是一个python集合模块,它允许您跟踪所有内容的数量。例如,在您的情况下,您可以迭代地更新计数器对象 例如:
from collections import Counter
with open("your_file.txt", "rb") as source:
counter = Counter()
for line in source:
entry, count = line.rsplit(",", 1)
counter[entry] += int(count)
此时,您可以将数据写回csv,也可以继续使用它。是否可以包含csv中的精确样本?你已经试过什么了?你有什么我们可以看的示例代码吗?