web-dev-qa-db-fra.com

Convertir la liste en colonne en Python Dataframe

J'ai un dataframe df qui ressemble à ceci:

CustomerId    Age
1              25
2              18
3              45
4              57
5              34

J'ai une liste appelée "Prix" qui ressemble à ceci:

Price = [123,345,1212,11,677]

Je veux ajouter cette liste à la trame de données. Voici mon code:

df['Price'] = Price

Cela semble fonctionner, mais lorsque j'imprime la trame de données, le champ appelé "Prix" contient toutes les informations de métadonnées telles que le nom, le type ... ainsi que la valeur du prix.

Comment puis-je créer une colonne appelée "Prix" contenant uniquement les valeurs de la liste de prix afin que la trame de données ressemble à:

CustomerId    Age   Price
1              25   123
2              18   345
3              45   1212
4              57   11
5              34   677
3
Giampaolo Levorato

À mon avis, la solution la plus élégante consiste à utiliser assign :

df.assign(Price=Price)
CustomerId    Age   Price
1              25   123
2              18   345
3              45   1212
4              57   11
5              34   677

notez que assigner réellement renvoie un DataFrame. Attribuer crée une nouvelle colonne 'Prix' (prix de gauche) avec le contenu de la liste de prix (prix de droite)

2
Quickbeam2k1

Vous pouvez ajouter la série pandas comme colonne.

import pandas as pd
df['Price'] = pd.Series(Price)
0
hamza tuna

J'ai copié collé votre exemple dans une trame de données en utilisant pandas.read_clipboard puis j'ai ajouté la colonne comme ceci:

import pandas as pd
df = pd.read_clipboard()
Price = [123,345,1212,11,677]
df.loc[:,'Price'] = Price
df

Générer ceci:

CustomerId  Age Price
0   1   25  123
1   2   18  345
2   3   45  1212
3   4   57  11
4   5   34  677
0
Jorge
import pandas as pd
df['Price'] = pd.Series(Price)

si vous l'utilisez, vous n'obtiendrez pas l'erreur si vous avez moins de valeurs dans la série que dans votre trame de données, sinon vous obtiendrez l'erreur qui vous indiquera qu'il y a moins de valeurs dans la liste et qui ne peuvent pas être ajoutées.

0
akshit0106