我有一个包含数千个条目的excel文件。我想计算第一列中的条目数。
import csv
with open('data.csv') as f:
reader = csv.reader(f)
annotated_data = [r for r in reader]
所以现在我想计算条目数,我尝试这样做:
a = 0
b = 0
c = 0
d = 0
e = 0
for i in annotated_data:
if annotated_data[0][i] == A:
a=a+1
if annotated_data[0][i] == B:
b=b+1
if annotated_data[0][i] == C:
//continue until E
print("Total number of A:" +a ) //continue until E
但是它告诉我“列表索引必须是整数或切片,而不是列表”。所以我尝试做
for i in range(annotated_data)
它告诉我“'list'对象不能解释为整数”
我不确定该怎么做,感谢您的帮助
答案 0 :(得分:0)
遍历列表将为您提供列表中的项目,而不是其索引。
因此,请执行以下操作:
for row in annotated_data:
first_cell = row[0]
如果您确实想要索引,则必须将数字传递给range
,而不是列表,即:
range(len(annotated_data))
但是我不建议您这样做。它只会使事情变慢,可读性差,并且与所有容器类型都不兼容。
如果您确实需要索引和项目,则可以执行以下操作:
for row_number, row in enumerate(annotated_data):
first_cell = row[0]
答案 1 :(得分:0)
作为快速解决方案,您可能要尝试
if i[0] == A:
a += 1
等或者,如果您要查找文字字符串“ A”,则:
if i[0] == 'A':
答案 2 :(得分:-1)
使用pip install pandas
安装熊猫
然后,您可以执行以下操作。
import pandas as pd
df = pd.read_csv('path to file.csv')
print(len(df) + 1)