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



我试图从CSV文件中获取第一列(名称(和第四列(活动(,并执行以下操作:

  • 为公司名称创建一个条目
  • 如果"is active"=是,则递增该值并输出最终结果
  • 如果"is active"=NO,则递增该数字,并在末尾给出一个值为"is active'"、"is not active'"的列表

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读取列,并可以将它们放入列表中,但我不确定之后如何比较和合并名称和计数。

如有任何帮助,我们将不胜感激。

一种方法,使用此方法:

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}
}

最新更新