Je voudrais savoir s'il existe un moyen en Python de placer des colonnes de différents cadres de données avec les mêmes noms (ou noms associés) les uns à côté des autres.

Je sais qu'il y a la possibilité d'utiliser JOIN, mais je voudrais créer une fonction à partir de zéro qui puisse réaliser la même chose.

Exemple:

Supposons 2 cadres de données df1 et df2

df1 est

id A  B
50 1  5
60 2  6
70 3  7
80 4  8

df2 est

id  A_1  B_1
50   a    b
60   c    d
70   e    f
80   g    h

Sortie attendue: une nouvelle trame de données, disons df3, ressemblant à ceci

   id A  A_1  B  B_1
   50 1   a   5   b
   60 2   c   6   d
   70 3   e   7   f
   80 4   g   8   h
1
Junkrat 8 mars 2019 à 21:51

2 réponses

Meilleure réponse

Vous pouvez utiliser sorted() avec des noms de colonne comme:

m=pd.concat([df1.set_index('id'),df2.set_index('id')],axis=1)
m[(sorted(m.columns))].reset_index()

   id  A A_1  B B_1
0  50  1   a  5   b
1  60  2   c  6   d
2  70  3   e  7   f
3  80  4   g  8   h
2
anky 8 mars 2019 à 19:11

D'abord, vous join les 2 cadres de données -

df3 = df1.join(df2, how='inner')

Et puis vous pouvez trier l'index -

df3 = df3.sort_index(axis=1)
1
Mortz 8 mars 2019 à 18:59