Python Pandas - Concat dataframes avec différentes colonnes en ignorant les noms de colonnes
J'ai deux pandas.DataFrames
que je voudrais combiner en un seul. Le dataframes ont le même nombre de colonnes, dans le même ordre, mais ont des en-têtes de colonne dans différentes langues. Comment puis-je combiner efficacement ces dataframes?
df_ger
index Datum Zahl1 Zahl2
0 1-1-17 1 2
1 2-1-17 3 4
df_uk
index Date No1 No2
0 1-1-17 5 6
1 2-1-17 7 8
desired output
index Datum Zahl1 Zahl2
0 1-1-17 1 2
1 2-1-17 3 4
2 1-1-17 5 6
3 2-1-17 7 8
La seule approche que j'ai trouvé jusqu'à présent est de renommer les titres des colonnes et ensuite utiliser pd.concat([df_ger, df_uk], axis=0, ignore_index=True)
. Cependant, j'espère trouver une approche plus générale.
- Quel est votre préoccupation avec le renommage?
- Le dataframe, je travaille avec est assez grand. (>30 colonnes). Je l'obtenir à partir d'une source externe, les étiquettes pourraient changer.
- Peut-être il ya une façon plus générale qui fonctionne avec l'index de colonne, en ignorant l'ensemble des noms de colonne, mais je ne pouvais pas trouver quoi que ce soit, encore.
Vous devez vous connecter pour publier un commentaire.
Si les colonnes sont toujours dans le même ordre, vous pouvez mécaniquement
renommer
les colonnes et les faire unappend
comme:Code:
Code De Test:
Résultats:
À condition que vous pouvez être sûr que les structures des deux dataframes restent les mêmes, je vois deux options:
Garder le dataframe noms de colonne le choix de la langue par défaut (je suppose fr_fr) et il suffit de les copier sur:
Cela fonctionne quelles que soient les noms de colonne. Cependant, techniquement, il reste le renommage.
Tirer les données du dataframe utilisation de numpy.ndarrays, de les enchaîner dans numpy, et de faire un dataframe de nouveau:
Cette solution nécessite plus de ressources, donc j'opterais pour la première.
Je ne suis pas si sûr que ce sera plus simple que ce que vous aviez à l'esprit, mais si l'objectif principal est de quelque chose de plus général alors cela devrait être bien avec une hypothèse: Les colonnes dans les deux fichiers correspondent par exemple, si la date de la première colonne, la version traduite sera également la première colonne.