为了账号安全,请及时绑定邮箱和手机立即绑定

Python - 如何将 CSV 与重复的名称和增量值进行比较

Python - 如何将 CSV 与重复的名称和增量值进行比较

SMILET 2022-10-06 18:42:22
我正在尝试从 CSV 文件中获取第一列(名称)和第四列(处于活动状态)并执行以下操作:为公司名称创建一个条目如果 'is active' = yes 则增加值并输出最终结果。如果“活跃”=否,则增加该数字并给我一个“活跃”、“不活跃”列表,最后有一个值。Data1 和 Data2 字段是我目前不关心的其他列。csv = Name,Data1,Data2, Is Active:Company 1,Data1,Data2,YesCompany 1,Data1,Data2,YesCompany 1,Data1,Data2,YesCompany 2,Data1,Data2,YesCompany 2,Data1,Data2,NoCompany 2,Data1,Data2,YesCompany 2,Data1,Data2,YesCompany 3,Data1,Data2,NoCompany 3,Data1,Data2,No理想的结果将采用以下格式:Company name, Yes-count, no-count我已经开始使用 csvreader 来读取列,我可以将它们放入列表中,但我不确定如何比较和合并名称和计数。任何帮助将不胜感激。
查看完整描述

1 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

一种方法,使用这个:


with open("your_csv_file", "r") as file:

    reader = csv.reader(file)

    _ = next(reader) # skip header


    consolidated = {}

    for line in reader:

        company_name = line[0]

        is_active = line[3]


        if company_name not in consolidated:

            consolidated[company_name] = { "yes_count": 0, "no_count": 0}


        if is_active == "Yes":

            consolidated[company_name]["yes_count"] += 1

        else:

            consolidated[company_name]["no_count"]  += 1

样本输出:


 >>> print(consolidated)


{

'Company 1': {'yes_count': 3, 'no_count': 0}, 

'Company 2': {'yes_count': 3, 'no_count': 1}, 

'Company 3': {'yes_count': 0, 'no_count': 2}

}


查看完整回答
反对 回复 2022-10-06
  • 1 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信