将Excel行读入Python

时间:2016-03-07 06:11:54

标签: python csv

我想导入保存在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])

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()