我如何用Python计算csv文件中一个值出现的次数?

2024-09-29 23:19:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv文件,其中包含一个酒店及其星级评定(1星级到5星级)。
B列是每家酒店的星级评定,从第2行开始(第1行是标题“Review Stars”),每个单元格一个星级值(1-5)。
我需要为Python(v.3.6.4)编写一个脚本来计算“reviewstars”列中出现“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”的列表,但不返回总数。我试过其他几个熊猫电话。有什么新的见解吗?在


Tags: 文件csvinimportdfforvalueas
2条回答
import pandas as pd
df = pd.read_csv('ServiceReviews.csv')
df_result = df[df['ReviewStars'] == 5]
print(len(df_result))

或者

^{pr2}$

这里不需要熊猫。您可以使用标准库中的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*家酒店的数量。在

相关问题 更多 >

    热门问题