猿问

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

我正在尝试从 CSV 文件中获取第一列(名称)和第四列(处于活动状态)并执行以下操作:

  • 为公司名称创建一个条目

  • 如果 'is active' = yes 则增加值并输出最终结果。

  • 如果“活跃”=否,则增加该数字并给我一个“活跃”、“不活跃”列表,最后有一个值。

Data1 和 Data2 字段是我目前不关心的其他列。

csv = 

Name,Data1,Data2, Is Active:

Company 1,Data1,Data2,Yes

Company 1,Data1,Data2,Yes

Company 1,Data1,Data2,Yes

Company 2,Data1,Data2,Yes

Company 2,Data1,Data2,No

Company 2,Data1,Data2,Yes

Company 2,Data1,Data2,Yes

Company 3,Data1,Data2,No

Company 3,Data1,Data2,No

理想的结果将采用以下格式:


Company name, Yes-count, no-count

我已经开始使用 csvreader 来读取列,我可以将它们放入列表中,但我不确定如何比较和合并名称和计数。


任何帮助将不胜感激。


SMILET
浏览 98回答 1
1回答

大话西游666

一种方法,使用这个: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}}
随时随地看视频慕课网APP

相关分类

Python
我要回答