我有一个包含两列的csv文件,一列用于评级,一列用于注释。我想数多少次!出现在注释中,并根据评级提供相应的值。例如,我想说的是,评分为5,并且为“!”在具有5个评分的评论中发生545次。我有一个柜台,但没有指定等级。到目前为止,我已经尝试过了
counter = 0
import csv
searchpm = '!'
with open('Reviews.csv', encoding='UTF-8') as f:
for line in csv.reader(f):
if line.df['Score'] == 5:
if any(searchpm in l for l in map(str.lower, line)):
counter += 1
print(counter)
给出错误:'list'对象没有属性'df' 我如何打印多少次“!”每个分数从1到5发生?
答案 0 :(得分:0)
您可以使用defaultdict来显示“!”多少次。每个分数都会发生。
import csv
from collections import defaultdict
counter = defaultdict(int)
searchpm = '!'
with open('Reviews.csv', encoding='UTF-8') as f:
next(f) # for skip first row with headers
for line in csv.reader(f):
counter[str(line[0])] += line[1].count(searchpm)
print(counter)
答案 1 :(得分:0)
熊猫是读取此csv文件的更好选择。
df = pd.read_csv('Reviews.csv')
然后,您可以创建一个新列,以检查'Comment'列是否具有char'!'。
df['checkchar'] = df.comments.apply(lambda x: '!' in x)
最后,要获得每个分数上有字符'!'的评论,请使用groupby进行操作。
>>> df.groupby('Score').sum().reset_index()
score checkchar
0 1 1.0
1 2 5.0
2 3 20.0
3 4 101.0
4 5 545.0