如何计算特定列中的条目数

时间:2018-09-01 12:30:17

标签: python csv

我有一个包含数千个条目的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'对象不能解释为整数”

我不确定该怎么做,感谢您的帮助

3 个答案:

答案 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)