简体   繁体   English

如何将.csv文件中的列存储到列表中?

[英]How store column from a .csv file into a list?

I have this code which get me all the data from my .csv file with DictReader 我有这段代码,可以使用DictReader.csv文件中获取所有数据

csv_path = "C:/Users/mydata.csv"

csv_database = open(csv_path, delimiters=";")    

dataDict = csv.DictReader(csv_database, delimiter=";")

My database is like: 我的数据库就像:

"Number0"; "date0"; "id0";...
"Number1"; "date1"; "id1";...
"Number2"; "date2"; "id2";...
...

And I want to get all the column in separate lists so they will look like : 我想将所有列都放在单独的列表中,以便它们看起来像:

[Number0, Number1, Number2,...]
[date0, date1, date2,...]
[id0, id1, id2,...]

Is there a way to do that, maybe using the headers which I can get with dataDict.fieldnames ? 有没有办法做到这一点,也许使用我可以通过dataDict.fieldnames获得的标头?

Thank you for your help 谢谢您的帮助

Well, I find a solution so here it is : 好吧,我找到了一个解决方案,所以在这里是:

csv_path = "C:/Users/mydata.csv"
csv_database = open(csv_path, delimiters=";")    
data_dict = csv.DictReader(csv_database, delimiter=";")

current_row = 0

number_list = []

for row in data_dict:

    current_row += 1 # Skip heading row

    if current_row == 1:
        continue

    number_list.append(row["Number"]) # Assuming the header of your column is "Number"

# Show results

for number in number_list:
    print number 

Take a look at numpy 看看numpy
You can do something like this with it: 您可以使用它执行以下操作:

>>> import numpy as np
>>> a = np.array([['hi','hey'],['sfg','asf']])
>>> a.transpose()
array([['hi', 'sfg'],
       ['hey', 'asf']],
      dtype='|S3')
>>> print a.transpose()[1]
['hey' 'asf']
zip(*[line.strip().split(',') for line in open(csv_path).readlines()])

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

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