pycharm根据csv文件中爬取的评论,根据评论中关键词出现的次数绘制饼状图
时间: 2024-03-19 20:44:49 浏览: 60
要根据CSV文件中爬取的评论中关键词出现次数绘制饼状图,需要先读取CSV文件,然后统计评论中关键词出现的次数。可以使用Python内置的csv和collections模块来完成这个任务。具体步骤如下:
1. 打开PyCharm,创建一个Python文件。
2. 导入需要使用的模块:csv和matplotlib.pyplot。
```
import csv
import matplotlib.pyplot as plt
```
3. 定义一个函数来统计关键词出现的次数。函数接受一个字符串参数,将字符串分割成单词列表,使用Counter类统计每个单词出现的次数,并返回一个字典。
```
from collections import Counter
def count_keywords(text):
words = text.lower().split()
return dict(Counter(words))
```
4. 打开CSV文件,读取评论数据,并将每一条评论的关键词出现次数统计到一个字典中。这里假设CSV文件的第一列是评论内容,第二列是评论时间。
```
with open('comments.csv', 'r') as file:
reader = csv.reader(file)
next(reader) # Skip header row
keyword_counts = {}
for row in reader:
keyword_counts_row = count_keywords(row[0])
for keyword, count in keyword_counts_row.items():
if keyword in keyword_counts:
keyword_counts[keyword] += count
else:
keyword_counts[keyword] = count
```
5. 使用matplotlib.pyplot绘制饼状图。将字典中的关键词和出现次数分别保存到两个列表中,然后调用pie函数绘制饼状图。
```
labels = list(keyword_counts.keys())
values = list(keyword_counts.values())
plt.pie(values, labels=labels, autopct='%1.1f%%')
plt.show()
```
完整代码如下:
```
import csv
import matplotlib.pyplot as plt
from collections import Counter
def count_keywords(text):
words = text.lower().split()
return dict(Counter(words))
with open('comments.csv', 'r') as file:
reader = csv.reader(file)
next(reader) # Skip header row
keyword_counts = {}
for row in reader:
keyword_counts_row = count_keywords(row[0])
for keyword, count in keyword_counts_row.items():
if keyword in keyword_counts:
keyword_counts[keyword] += count
else:
keyword_counts[keyword] = count
labels = list(keyword_counts.keys())
values = list(keyword_counts.values())
plt.pie(values, labels=labels, autopct='%1.1f%%')
plt.show()
```
阅读全文