我需要计算CSV文件中多个标题同时包含信息的行数,
例如,这是我的CSV文件:
id,gender,name,age
1,M,Kerry Manders,
2,F,Cain Coulton,29
3,,Marcia Bennett,62
4,F,Rachel Werahiko,
5,,Karen Coulton,44
6,M,Sophia Shortcliffe,62
7,M,Files Access,30
8,,,39
是的,CSV中有一些空值,我需要计算多个标题中非空值的行数。例如,我想计算标题中包含“性别”和“姓名”信息的行,
答案是6行。当然,只要告诉它有多少行就行了,不需要输出文件
gender,name
M,Kerry Manders
F,Cain Coulton
F,Rachel Werahiko
M,Sophia Shortcliffe
M,Files Access
当我计算'性别','姓名'和'年龄'时,Python计算四行
gender,name,age
F,Cain Coulton,29
M,Sophia Shortcliffe,62
M,Files Access,30
我试图通过搜索空值来计算包含信息的行,但我不知道如何继续,或者您是否有其他更好的方法
import csv
with open(r"C:\Users\o\Desktop\1.csv",'r',encoding='UTF-8') as load_input:
with open(r"C:\Users\o\Desktop\2.csv", 'w', newline='',encoding='UTF-8') as out_output:
ereader = csv.reader(load_input)
ewriter = csv.writer(out_output)
eheader = next(ereader)
ewriter.writerow(eheader)
for row_list in ereader:
image_id = str(row_list[2]).strip()
if '' in image_id:
ewriter.writerow(row_list)
elif '' in image_id:
print()
1条答案
按热度按时间raogr8fs1#
您可以将输入CSV读取为一个带有
csv.DictReader
的dicts序列,并计算所有所需列非空的dicts数量。将计数加1以包括输出的标题行:该输出:
4
Demo:在线试用!