4
votes

Dataframe Pandas comment passer la liste sous forme de colonnes

J'ai deux listes, telles que:

list_values = [11,22,33,44,55,66,77,88,99,100, 111, 222]

et une liste de valeurs

list_columns = ['a','b','c','d','e','f','g','h','k','l','m','n']

Je souhaite créer un dataframe Pandas en utilisant list_columns as columns final.

J'ai essayé avec df = pd.DataFrame (list_values, columns = list_columns) mais cela ne fonctionne pas

J'obtiens cette erreur: ValueError: La forme des valeurs passées est (1, 12), les indices impliquent (12, 12)


2 commentaires

Que voulez-vous dire list_values ​​ en tant que colonnes? Veuillez être plus précis sur le résultat attendu.


list_columns comme colonnes. Je viens de le modifier


3 Réponses :


5
votes

Si je comprends bien votre question, placez simplement list_values ​​entre crochets, c'est donc une liste de listes

list_columns = ['a','b','c','d','e','f','g','h','k','l','m','n']
list_values = [[11,22,33,44,55,66,77,88,99,100, 111, 222]]

pd.DataFrame(list_values, columns=list_columns)
    a   b   c   d   e   f   g   h   k    l    m    n
0  11  22  33  44  55  66  77  88  99  100  111  222


0 commentaires

7
votes

Un dataframe est un objet bidimensionnel. Pour refléter cela, vous devez alimenter une liste imbriquée. Chaque sous-liste, dans ce cas la sous-liste uniquement , représente une ligne.

df = pd.DataFrame([list_values], columns=list_columns, index=[0, 1, 2])

print(df)

#     a   b   c   d   e   f   g   h   k    l    m    n
# 0  11  22  33  44  55  66  77  88  99  100  111  222
# 1  11  22  33  44  55  66  77  88  99  100  111  222
# 2  11  22  33  44  55  66  77  88  99  100  111  222

Si vous fournissez un index d'une longueur supérieure à 1, Pandas diffuse pour vous: p>

df = pd.DataFrame([list_values], columns=list_columns)

print(df)

#     a   b   c   d   e   f   g   h   k    l    m    n
# 0  11  22  33  44  55  66  77  88  99  100  111  222


1 commentaires

Génial, c'est exactement ce que j'essayais de réaliser



1
votes

dans votre liste, vous pouvez faire comme ci-dessous:

df = pd.DataFrame(list_values) 
df=df.T
df.columns=list_columns
>>df

    a   b   c   d   e   f   g   h   k    l    m    n
0  11  22  33  44  55  66  77  88  99  100  111  222


0 commentaires