python - 从 CSV 文件中计算男性和女性的数量

标签 python csv

我想计算 CSV 文件中男性和女性骑手的数量(编码为 1 或 2),但我的代码似乎不起作用。这是我的代码:

Men = 0
Women = 0
import csv
with open('dec2week.csv') as csvfile:
        reader = csv.DictReader(csvfile)
        for row in reader:
            print(row['gender'])
        if 'gender' == 1:
            'gender'Men += 1
        esle:
            'gender'Women += 1

print "Count for Men: ", Men
print "Count for women: ", Women

最佳答案

使用 Counter dict 进行计数:

import csv
from collections import Counter
from itertools import chain
with open('dec2week.csv') as csvfile:
    next(csvfile)
    counts = Counter(chain.from_iterable(csv.reader(csvfile)))

然后使用 key 获取计数:

print("Total male = {}".format(counts["1"]))
print("Total female = {}".format(counts["2"]))

要使用特定的列,要么为每一行编制索引,要么使用您的 DictReader 方法:

 counts = Counter(row["gender"] for row in csv.DictReader(csvfile))

使用您的 for 循环,您需要按键访问并将返回的值与“1”进行比较:

with open('dec2week.csv') as csvfile:
    m,f = 0,0
    for row in csv.DictReader(csvfile):
        if row["gender"] == "1":
            m += 1
        else:
            f += 1


print("Total male = {}".format(m))
print("Total female = {}".format(f))

关于python - 从 CSV 文件中计算男性和女性的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31706090/

相关文章:

python - 为什么深度学习库如此庞大?

Python 一行分割字符串,例如 "192.168.0.0/24"和 "8.8.8.8"?

mysql - 使用sql函数将csv文件中的数据插入到mysql中

python - 使用 beautifulsoup 抓取 XML 元素属性

python - 以编程方式关闭 Paramiko 中的 SSH 隧道

python - 读取文件,在 windows 或 linux 上的结果不同

python - 使用带有自制对象的 read_csv 作为 'file'

c# - 读取带有分隔符的 INI 文件部分到数组

python - 动态压缩字符串并附加到文件

wordpress csv导出在输出中包含html