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

2 投票
3 回答
2544 浏览
提问于 2025-04-18 11:44

我有一段代码,它可以用 DictReader 从我的 .csv 文件中获取所有数据。

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

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

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

我的数据库大概是这样的:

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

我想把每一列的数据分开放到不同的列表里,最终看起来像这样:

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

有没有什么办法可以做到这一点?也许可以利用我通过 dataDict.fieldnames 获取的表头?

谢谢你的帮助!

3 个回答

0

在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后在程序中使用这些数据。这个过程就像是在厨房里做菜,首先你需要准备好食材,然后才能开始烹饪。

在这个过程中,可能会遇到一些问题,比如数据格式不对,或者数据缺失。这就像是你在做菜时发现缺少某种调料,可能会影响到最后的味道。

为了避免这些问题,程序员通常会提前检查数据,确保一切都准备好。就像在做菜之前,先把所有的食材和工具都准备齐全,这样才能顺利进行。

总之,处理数据就像做菜一样,需要仔细准备和检查,才能做出美味的成果。

zip(*[line.strip().split(',') for line in open(csv_path).readlines()])
1

看看这个numpy的文档吧。
你可以用它做一些这样的事情:

>>> 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']
2

好的,我找到了解决办法,下面就是:

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 

撰写回答