我有一个 csv 文件,其中包含酒店列表及其星级(1 星到 5 星)。
B 列包含每家酒店的星级评级,从第 2 行开始(第 1 行是标题“点评星级”),每个单元格有一个星级值 (1 - 5)。
我需要为Python(v.3.6.4)编写一个脚本来计算“评论星星”列中出现“5”的次数。因此,获得 5 星级评级的公司数量。例如,如果我有 2000 家酒店,其中 800 家有 5 星级评级,我需要 python 返回“800”。
到目前为止我已经写了:
import csv
from decimal import *
import math
import pandas as pd
with open('ServiceReviews.csv', 'r') as f:
data = csv.reader(f)
for row in f:
CustomerEmail = row[0]
ReviewStars = row[1]
ReferenceID = row[2]
BusinessUnitID = row[3]
Tags = row[4]
for value in ReviewStars:
df = pd.DataFrame({'5':list(ReviewStars)})
fives = df['5'].value_counts()
print (fives)
这将返回所有“5”的列表,但不是总数。我尝试过其他几次 Pandas 叫声。大家有什么新的见解吗?
最佳答案
这里不需要 Pandas。您可以使用标准库中的collections.Counter
:
import csv
from collections import Counter
with open('ServiceReviews.csv', 'r') as f:
c = Counter(row[1] for row in csv.reader(f))
Counter
对象 c
将是一个计数字典,其中星星的数量作为键,相应的计数作为值。因此,您可以使用 c[5]
来提取 5 星级酒店的数量。
关于python - 如何使用 Python 计算 csv 文件中某个值出现的次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50859316/