我想导入保存在Excel CSV中的数据行。如何将每行的数据保存为列表?
Excel文件具有以下类型的数据:
Name B C D
ItemID 3 3 4
Height 5 5 7
Length 6 5 8
我想将[B,C,D]保存在名为Name
的列表中,将[3,3,4]保存为名为ItemID
的列表。我试图使用以下代码,但它总是返回文件的最后一行。
f = open('part.csv', 'r')
csv_f=csv.reader(f,delimiiter=',')
for row in csv_f:
name.append(row[1])
numid.append(row[2])
height.append(row[3])
length.append(row[4])
答案 0 :(得分:2)
我认为您误解了一行包含该行的所有列,例如第一次通过循环row = ['Name', 'B', 'C', 'D']
。
因此,使用字典,将键作为第一列,其余作为值:
data = {}
with open('part.csv', 'r') as f:
csv_f=csv.reader(f,delimiiter=',')
for row in csv_f:
data[row[0]] = row[1:]
数据:
{'Height': ['5', '5', '7'],
'ItemID': ['3', '3', '4'],
'Length': ['6', '5', '8'],
'Name': ['B', 'C', 'D']}
答案 1 :(得分:1)
试试这个
with open('testdata.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
name.append(row['fieldname'])
答案 2 :(得分:0)
您要做的是使用数据框。尝试使用pandas库,因为它简化了许多操作。
答案 3 :(得分:0)
强烈建议您考虑使用 pandas python数据分析库。
import pandas as pd
csv_df = pd.read_csv('part.csv')
df_T = csv_df.T
print df_T['ItemID'].tolist()
print df_T.index.tolist()