Je souhaite importer les lignes de données enregistrées dans un fichier CSV Excel. Comment puis-je enregistrer les données de chaque ligne sous forme de liste?

Le fichier Excel contient les types de données suivants:

Name   B  C   D
ItemID 3  3   4
Height 5  5   7
Length 6  5   8

Je souhaite enregistrer [B, C, D] dans une liste nommée Name et [3,3,4] sous une liste nommée ItemID. J'ai essayé d'utiliser le code suivant, mais il renvoie toujours la dernière ligne du fichier.

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
jojo615 7 mars 2016 à 09:11

4 réponses

Meilleure réponse

Je recommande vivement d'envisager d'utiliser pandas la bibliothèque d'analyse de données 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()
0
su79eu7k 8 mars 2016 à 23:06

Je pense que vous comprenez mal qu'une ligne a toutes les colonnes de cette ligne, par exemple la première fois dans la boucle row = ['Name', 'B', 'C', 'D'].
Utilisez donc un dictionnaire, avec la clé comme première colonne et le reste comme valeur:

data = {}
with open('part.csv', 'r') as f:
    csv_f=csv.reader(f,delimiiter=',')
    for row in csv_f:
        data[row[0]] = row[1:]

Les données:

{'Height': ['5', '5', '7'],
 'ItemID': ['3', '3', '4'],
 'Length': ['6', '5', '8'],
 'Name': ['B', 'C', 'D']}
2
AChampion 7 mars 2016 à 06:20

Essaye ça

with open('testdata.csv') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        name.append(row['fieldname'])
1
Tony Roczz 8 mars 2016 à 04:42

Ce que vous essayez de faire, c'est de travailler avec une trame de données. Essayez d'utiliser la bibliothèque pandas car elle simplifie de nombreuses opérations.

0
Shinva 7 mars 2016 à 08:26