Bonjour à tous,

J'essaye d’agglomérer des données assez disparates contenues dans une dizaine de fichiers csv. Ces fichiers contiennent approximativement 100 colonnes, mais cela varie. La grande majorité de ces colonnes sont redondantes d'un fichier à l'autre (mais pas toutes!). Cependant, elles ont toutes une colonne en commun, qu'on nomme 'date_time' ici, qui est utilisée comme point d'encrage pour l'agglomération des dataframes. Lorsque j'effectue un pandas.merge() entre deux dataframes qui ont une colonne en commun (imaginons potato), au lieu d'ajouter les nouvelles données à la colonne existante, cette colonne est dupliquée et renommée automatiquement (potato_x, potato_y). Comment éviter la duplication des colonnes ?
On peut résumer mon problème avec le petit exemple ci-dessous.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Reference dataframe
df = pd.DataFrame({'date_time':['2018-06-01 00:00:00','2018-06-01 00:30:00','2018-06-01 01:00:00','2018-06-01 01:30:00']})
 
# Dataframes to merge to reference dataframe
df1 = pd.DataFrame({'date_time':['2018-06-01 00:30:00','2018-06-01 01:00:00'],
                'potato':[13,21]})
 
df2 = pd.DataFrame({'date_time':['2018-06-01 01:30:00','2018-06-01 02:00:00','2018-06-01 02:30:00'],
                'carrot':[14,8,32]})
 
df3 = pd.DataFrame({'date_time':['2018-06-01 01:30:00','2018-06-01 02:00:00'],
                'potato':[27,31], 'zucchini':[11,1]})
 
 
df = df.merge(df1, how='left', on='date_time')
df = df.merge(df2, how='left', on='date_time')
df = df.merge(df3, how='left', on='date_time')
ce qui donne comme résultat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
date_time                 potato_x  carrot  potato_y  zucchini
0  2018-06-01 00:00:00       NaN     NaN       NaN       NaN
1  2018-06-01 00:30:00      13.0     NaN       NaN       NaN
2  2018-06-01 01:00:00      21.0     NaN       NaN       NaN
3  2018-06-01 01:30:00       NaN    14.0      27.0      11.0
alors que je voudrais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
date_time                 potato  carrot   zucchini
0  2018-06-01 00:00:00       NaN     NaN       NaN
1  2018-06-01 00:30:00      13.0     NaN       NaN
2  2018-06-01 01:00:00      21.0     NaN       NaN
3  2018-06-01 01:30:00      27.0    14.0       11.0
Merci beaucoup !