panda set_value et boucle for
Bonjour,
j'ai un dataframe df (créé avec la librairie panda) sur lequel mon identifiant de ligne id (qui n'est pas l'index) est dupliqué car une colonne ("ma_colonne") a des données sur plusieurs lignes pour un même identifiant.
Ce que je veux faire, c'est grouper les lignes de cette colonne en une seule. Ce que je fais avec:
Code:
group_lines = df.groupby('id').apply(lambda x: ','.join(x['ma_colonne']))
Je cherche ensuite les données de cette objet dans mon df pour modifier celui-ci. Je le fais avec cette boucle:
Code:
1 2 3 4
| for row in df.itertuples():
for i,v in group_lines.iteritems():
if row.id == i:
df.set_value(row.Index, 'ma_colonne', v) |
Ca marche, mais 2 problèmes: C'est très très long dès que mon df a plus de 10 000 lignes (puisque boucle sur 2 objets j'imagine....). Et la fonction set_value() va être déprecié dans la prochaine mise à jour de panda: ils disent de remplacer celle-ci par df.at[].
Avez-vous une idée de comment améliorer cet algo?
Merci :)