繁体   English   中英

csv列出并分析python

[英]csv to list and analyze 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的计数值。我该如何进行这项工作,以便从csv文件中获得1的计数值?

尝试改变delimiter命名的参数去,在你的代码。

因此,读取CSV的代码为:

with open(my_file_name, 'r') as in1file:
    mylist = csv.reader(in1file, delimiter=',')

您的列表现在仅包含一个字符串。 您需要获取字符串并对其进行split(',') ,这将为您提供单字符字符串列表,然后可以将其转换为整数,我认为这是您想要的。

如果那确实是您的mylist ,并且长度为1,那么这就是我的想法:

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

如果mylist有很多类似的字符串,则可以执行以下操作:

lines = []
for line in mylist:
    lines.append([int(item) for item in line.split(',')])

以下是适合您情况的快速摘要:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM