如何使用Python计算csv文件中出现值的次数?
我有一个csv文件,其中包含一个酒店列表及其星级评定(1星级到5星级)。如何使用Python计算csv文件中出现值的次数?,python,python-3.x,csv,Python,Python 3.x,Csv,我有一个csv文件,其中包含一个酒店列表及其星级评定(1星级到5星级)。 B列包含每个酒店的星级评定,从第2行开始(第1行是标题“回顾星级”),每个单元格有一个星级值(1-5) 我需要为Python(v.3.6.4)编写一个脚本来计算“Review Stars”列中出现“5”的次数。因此,拥有5星级评级的公司的数量。例如,如果我有2000家酒店,其中800家有5星级评级,我需要python返回“800”。 到目前为止,我写了: import csv from decimal import
B列包含每个酒店的星级评定,从第2行开始(第1行是标题“回顾星级”),每个单元格有一个星级值(1-5)
我需要为Python(v.3.6.4)编写一个脚本来计算“Review Stars”列中出现“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”的列表,但不是总数。我还试过其他几个熊猫电话。有人有什么新见解吗
import pandas as pd
df = pd.read_csv('ServiceReviews.csv')
df_result = df[df['ReviewStars'] == 5]
print(len(df_result))
或
这里不需要熊猫。您可以使用标准库中的集合。计数器:
import csv
from collections import Counter
with open('ServiceReviews.csv', 'r') as f:
c = Counter(row[1] for row in csv.reader(f))
计数器
对象c
将是一个计数字典,星号作为键,各自的计数作为值。因此,您可以使用c[5]
提取5*家酒店的数量。因此,他希望使用c[5]准确地计算出5颗星的总数?@lamorach。或者(df['ReviewStarts']==5.sum()
。
import csv
from collections import Counter
with open('ServiceReviews.csv', 'r') as f:
c = Counter(row[1] for row in csv.reader(f))