Python 如何将csv文件中的列数据添加到数组中
假设我有一个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 我只能在第一篇专栏中这样做。查看本·索斯盖特的这篇文章: 他
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]}
请不要删除问题的内容。此问题可用作将来搜索的登录板,或者您应该通过左下角的“删除”链接将其完全删除。请不要编辑您问题的内容。这个问题对于将来的搜索很有用,或者您应该通过左下角的删除链接将其完全删除。