CSV转换成列表并分析Python

2024-10-08 18:26:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从csv文件中读取一些值,并使用以下代码将这些值转换为列表。csv文件只有一行,大约有2000个值是“1”或“0”。我用这个代码来计算csv文件中有多少个“1”。你知道吗

def countX(a, x):
    count = 0
    for ele in a:
        if (ele == x):
            count = count + 1
    return count

def countX(a, x):
    return a.count(x)

with open(my_file_name, 'r') as in1file:
    mylist = [row[0] for row in csv.reader(in1file, delimiter=';')]

print (mylist)

a = [mylist]
x = 1

countX 
print(countX(a, x))

我的问题是“我的列表”返回类似

['0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0'] 

所以当我询问我的列表来计算“1”的计数时,我总是因为某些原因得到值0。如果我创建一个列表

a = [1,1,1,1,1,1,0,0] 

我将得到一个6的计算值。我如何才能使这项工作,使我得到的数字1的计数从我的csv文件?你知道吗


Tags: 文件csv代码in列表forreturndef
3条回答

下面是一个适用于您的案例的快速片段:

MyList = ['0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0']
MyList_Split = MyList[0].split(',')
print(MyList_Split.count('1'))
# Returns 2
>>> from collections import Counter
>>> MyList = ['0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0']
>>> counts = Counter(MyList[0].split(','))
>>> counts
Counter({'0': 18, '1': 2})
>>> counts['1']
2
def countX(a, x):
count = 0
for ele in a:
    if (ele == x):
        count = count + 1
return count

def countX(a, x):
return a.count(x)

with open(my_file_name, 'r') as in1file:
mylist = [row[0] for row in csv.reader(in1file, delimiter=';')]

new_list = [int(item) for item in mylist[0].split(',')]

a = [new_list]
x = 1

countX 
print(countX(a, x))

相关问题 更多 >

    热门问题