假设我有一个csv文件,其中包含五列,每列具有200个数据。 我使用了这两个代码,但是其中两个存储行数据。谁能告诉我如何直接将.csv文件中的每一列存储为python中的单个数组?
代码1:
import csv
with open("figure1_plotdata.csv") as f:
reader = csv.reader(f)
next(reader)
data = [r for r in reader]
print (data)
代码2:
from numpy import genfromtxt
my_data = genfromtxt('figure1_plotdata.csv', delimiter=',')
print (my_data)
答案 0 :(得分:1)
如果要将CSV文件转换为列表,其中单个列表对应于一列,则可以使用pandas加载csv并应用转置以获得所需的结果。
可以这样做。
Warning: PHP Startup: PDFlib: Unable to initialize module
Module compiled with module API=20160303
PHP compiled with module API=20170718
These options need to match`Warning: PHP Startup: PDFlib: Unable to
initialize module
示例数据框
import pandas as pd
df = pd.read_csv('your_file_name.csv')
data_list = df.T.values.tolist()
print(data_list)
结果
A B C
1 10 11
2 20 22
3 30 33
答案 1 :(得分:0)
尝试类似这样的方法。将数据存储在csv文件中的二维数据数组data [i] [j]中,其中i为列,j为行,两个索引均从0开始。(基本上是对原始数据进行转置)
import csv
file_name = 'figure1_plotdata.csv'
data = [[] for i in range(5)]
with open(file_name) as csvfile:
csvdata = csv.reader(csvfile, dialect='excel', delimiter=',')
''' store column value in a 2 dimensional data array data[i][j]
with i being the column and j the row '''
for row in csvdata:
for i, column in enumerate(row):
data[i].append(column)
for i, column in enumerate(data):
for j, value in enumerate(column):
print(f'row {j}, column {i}: {value}')