227 votes

convertir une liste d'en-têtes et de lignes en pandas DataFrame

Je lis le contenu d'une feuille de calcul dans pandas. DataNitro possède une méthode qui renvoie une sélection rectangulaire de cellules sous la forme d'une liste de listes. Ainsi, la méthode

table = Cell("A1").table

donne

table = [['Heading1', 'Heading2'], [1 , 2], [3, 4]]

headers = table.pop(0) # gives the headers as list and leaves data

Je suis en train d'écrire du code pour traduire cela, mais je pense que c'est une utilisation tellement simple qu'il doit y avoir une méthode pour le faire. Je n'arrive pas à la trouver dans la documentation. Est-ce qu'il y a des indications sur la méthode qui simplifierait les choses ?

335voto

EdChum Points 10205

Appeler le pd.DataFrame directement :

df = pd.DataFrame(table, columns=headers)
df

   Heading1  Heading2
0         1         2
1         3         4

110voto

Shoresh Points 2015

Avec l'approche expliquée par EdChum ci-dessus, les valeurs de la liste sont affichées sous forme de lignes. Pour afficher les valeurs des listes sous forme de colonnes dans le DataFrame, il suffit d'utiliser transpose() comme suit :

table = [[1 , 2], [3, 4]]
df = pd.DataFrame(table)
df = df.transpose()
df.columns = ['Heading1', 'Heading2']

Le résultat est alors le suivant :

      Heading1  Heading2
0         1        3
1         2        4

9voto

W-B Points 94428

Même sans pop la liste que nous pouvons faire avec set_index

pd.DataFrame(table).T.set_index(0).T
Out[11]: 
0 Heading1 Heading2
1        1        2
2        3        4

Mise à jour from_records

table = [['Heading1', 'Heading2'], [1 , 2], [3, 4]]

pd.DataFrame.from_records(table[1:],columns=table[0])
Out[58]: 
   Heading1  Heading2
0         1         2
1         3         4

2voto

JavaScriptDude Points 140

A partir de la table exemple, appeler DataFrame comme suit :

table = [['Heading1', 'Heading2'], [1 , 2], [3, 4]]

df = pd.DataFrame(table[1:], columns=table[0])

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X