我有问题。我想将.CSV文件中的每一列存储到列表中。因此,如果我有像这样的CSV文件,例如https://i.stack.imgur.com/wuryt.png
我想以:
的方式存储它ColumnA = [50-001, 50-002, 50-003, 50-004, 50-005, 50-006, 50-007, 50-008, 50-009]
ColumnB = [85-001, 85-003, 85-004 , 85-004 ,85-004 , 85-005 ,85-005, 85-006 ,85-007]
等。
我现在有类似的东西,但是它将每一行存储在列表中,但是我需要每列列表。有人能帮我吗?我也尝试了大熊猫,也不能那样做。
csvfile = open('Kody pocztowe csv.csv', 'r')
csv1 = csv.reader(csvfile,delimiter = ',')
sort = sorted(csv1, key=operator.itemgetter(0))
for eachline in sort:
print(eachline)
csvfile.readline()
lx = []
for line in csvfile:
row = line.split(',')
lx.append(row)
print(lx)
这是一个非pandas版本(需要python3(。可以使用zip
或相关的itertools.zip_longest()
转换数组。
from itertools import zip_longest
import csv
# Read the data in organized by rows
with open('Kody pocztowe csv.csv') as csvfile:
row_data = list(csv.reader(csvfile, delimiter=';'))
# Transpose data into column organization
col_data = list(zip_longest(*row_data))
# OP asked for individual column variables
ColumnA, ColumnB, ColumnC, ColumnD = col_data[:4]
print("ColumnA = ", ColumnA)
print("ColumnB = ", ColumnB)
print("ColumnC = ", ColumnC)
print("ColumnD = ", ColumnD)
输入文件:
00;01;02;03
10;11;12
20;21;22;23;24
结果:
ColumnA = ('00', '10', '20')
ColumnB = ('01', '11', '21')
ColumnC = ('02', '12', '22')
ColumnD = ('03', None, '23')
好吧,我是用熊猫做的,这是:
import pandas as pd
df = pd.read_csv("yourdoc.csv")
columnTitles = list(df)
listOfResults = []
for eachCol in columnTitles:
listOfResults.append(df[eachCol].tolist())
然后您应该有一个列表或列的列表。
问题是定界符是";"和不是逗号。
确保Row = line.split('; '(
instead of line.split('**,**')
使用numpys genfromtxt:
import numpy as np
data=np.genfromtxt('Kody pocztowe csv.csv',delimiter=';',dtype=float)
#access columns as:
column1=data[:,0].tolist()
column2=data[:,1].tolist()
...