joindre deux pandas dataframe à l'aide d'une colonne spécifique
Je suis nouveau avec les pandas et j'essaie de joindre les deux dataframes fondée sur l'égalité de l'une colonne spécifique. Par exemple supposons que j'ai les suivants:
df1
A B C
1 2 3
2 2 2
df2
A B C
5 6 7
2 8 9
Les deux dataframes ont les mêmes colonnes et la valeur d'une seule colonne (dire) peut être égal. Ce que je veux en sortie est: est-ce
df3
A B C B C
2 8 9 2 2
Les valeurs de la colonne " A " sont uniques dans dataframes.
Grâce
Pour plus d'informations sur les différentes facettes et la fonctionnalité de la fusion, de rejoindre et concat API, veuillez jeter un oeil à les Pandas de la Fusion 101.
OriginalL'auteur ahajib | 2015-06-01
Vous devez vous connecter pour publier un commentaire.
Si vous désirez maintenir la colonne
A
comme un non-index, puis:reset_index
pour la transformer en une colonne si c'est ce qui est voulu.Bien sûr, l'indice peut être remis à zéro par l'ajout de
.reset_index()
à la fin.pd.concat([df1.set_index('A'),df2.set_index('A')], axis=1, join='inner').reset_index()
il est préférable de modifier votre réponse à inclure les ajouter l info
oui, c'est ce que j'étais 🙂
OriginalL'auteur vk1011
Alternativement, vous pouvez simplement faire:
Et puis vous pouvez garder une trace de chaque valeur d'origine de l'
addes un suffixe à chaque nom de colonne, de sorte que vous n'êtes pas de gauche avec, par exemple, deux colonnes appelé
"B"
. Lorsque vous avez des noms de colonne, vous obtiendrez un comportement inattendu à dire,df3['B'].apply(lambda x: ...)
depuis maintenantdf['B']
est un DataFrame et non pas une Série.Génial. Qui aide vraiment beaucoup
OriginalL'auteur Paul H