Python 如何将csv文件中的列数据添加到数组中

Python 如何将csv文件中的列数据添加到数组中,python,csv,Python,Csv,假设我有一个csv文件: Col1,Col2,Col3,Col4 1,2,3,4 1,2,3,4 1,2,3,4 1,2,3,4 我想将列中的所有值添加到数组中,然后对其进行操作,然后再添加到下一列 因此: 使用的问题 data = csv.reader(input_file) lst = [] for row in data: lst.append(row[0]) # do something with lst 我只能在第一篇专栏中这样做。查看本·索斯盖特的这篇文章: 他

假设我有一个csv文件:

Col1,Col2,Col3,Col4
1,2,3,4
1,2,3,4
1,2,3,4
1,2,3,4
我想将列中的所有值添加到数组中,然后对其进行操作,然后再添加到下一列

因此:

使用的问题

data = csv.reader(input_file)
lst = []

for row in data:
    lst.append(row[0])
    # do something with lst

我只能在第一篇专栏中这样做。

查看本·索斯盖特的这篇文章:

他写的这段代码用你的列表创建了一个dict。然后,您可以通过以下方式访问它们:

Col1 = data['Col1']

本应将链接添加到评论中,但我还没有足够的代表发表评论。

查看本·索斯盖特的这篇文章:

他写的这段代码用你的列表创建了一个dict。然后,您可以通过以下方式访问它们:

Col1 = data['Col1']

将链接放入注释中,但我还没有足够的代表发表评论。

我将使用numpy一次读取整个csv,然后您可以按如下方式使用数组:

import numpy as np
my_data = np.genfromtxt('test.csv', delimiter=',')
for column in my_data.T:
  print(column)
其中:

[ 1.  1.  1.  1.]
[ 2.  2.  2.  2.]
[ 3.  3.  3.  3.]
[ 4.  4.  4.  4.]
对于这样的csv文件:

1,2,3,4
1,2,3,4
1,2,3,4
1,2,3,4

我将使用numpy一次读取整个csv,然后您可以按如下方式使用数组:

import numpy as np
my_data = np.genfromtxt('test.csv', delimiter=',')
for column in my_data.T:
  print(column)
其中:

[ 1.  1.  1.  1.]
[ 2.  2.  2.  2.]
[ 3.  3.  3.  3.]
[ 4.  4.  4.  4.]
对于这样的csv文件:

1,2,3,4
1,2,3,4
1,2,3,4
1,2,3,4

似乎您可以将文件读入列表列表中。如果是这样,请查看zip函数。它将列表作为参数,并将第一个元素组合成一个新列表,第二个元素组合成一个新列表,等等

>>> data = [[1,2,3,4],[1,2,3,4],[1,2,3,4]]
>>> transposed = zip(*data)
>>> transposed
[(1, 1, 1), (2, 2, 2), (3, 3, 3), (4, 4, 4)]
>>> 

正如前面所指出的,numpy可以做到这一点(甚至更多!),但它是python中未包含的附加包。

您似乎可以将文件读入列表列表中。如果是这样,请查看zip函数。它将列表作为参数,并将第一个元素组合成一个新列表,第二个元素组合成一个新列表,等等

>>> data = [[1,2,3,4],[1,2,3,4],[1,2,3,4]]
>>> transposed = zip(*data)
>>> transposed
[(1, 1, 1), (2, 2, 2), (3, 3, 3), (4, 4, 4)]
>>> 

正如前面所指出的,numpy可以做到这一点(甚至更多!),但它是python中未包含的附加包。

这将内容读入字典:

import csv
import pprint

with open('cols.csv') as input_file:
    reader = csv.reader(input_file)
    col_names = next(reader)
    data = {name: [] for name in col_names}
    for line in reader:
        for pos, name in enumerate(col_names):
            data[name].append(int(line[pos]))

pprint.pprint(data)
输出:

{'Col1': [1, 1, 1, 1],
 'Col2': [2, 2, 2, 2],
 'Col3': [3, 3, 3, 3],
 'Col4': [4, 4, 4, 4]}

这会将内容读入词典:

import csv
import pprint

with open('cols.csv') as input_file:
    reader = csv.reader(input_file)
    col_names = next(reader)
    data = {name: [] for name in col_names}
    for line in reader:
        for pos, name in enumerate(col_names):
            data[name].append(int(line[pos]))

pprint.pprint(data)
输出:

{'Col1': [1, 1, 1, 1],
 'Col2': [2, 2, 2, 2],
 'Col3': [3, 3, 3, 3],
 'Col4': [4, 4, 4, 4]}

请不要删除问题的内容。此问题可用作将来搜索的登录板,或者您应该通过左下角的“删除”链接将其完全删除。请不要编辑您问题的内容。这个问题对于将来的搜索很有用,或者您应该通过左下角的删除链接将其完全删除。