Les Pandas fusionnent deux dataframes avec des colonnes différentes
Je suis certainement manquant quelque chose de simple ici. Essayant de fusionner les deux dataframes dans les pandas qui ont pour la plupart les mêmes noms de colonnes, mais le droit dataframe a certaines colonnes que la gauche n'a pas, et vice versa.
>df_may
id quantity attr_1 attr_2
0 1 20 0 1
1 2 23 1 1
2 3 19 1 1
3 4 19 0 0
>df_jun
id quantity attr_1 attr_3
0 5 8 1 0
1 6 13 0 1
2 7 20 1 1
3 8 25 1 1
J'ai essayé de joindre avec une jointure externe:
mayjundf = pd.DataFrame.merge(df_may, df_jun, how="outer")
Mais qui donne:
Left data columns not unique: Index([....
J'ai aussi spécifié qu'une seule colonne à rejoindre (on = "id", par exemple), mais qui duplique toutes les colonnes à l'exception de "id" comme attr_1_x, attr_1_y, qui n'est pas idéal. J'ai aussi passé l'ensemble de la liste des colonnes (ils sont nombreux) sur "on":
mayjundf = pd.DataFrame.merge(df_may, df_jun, how="outer", on=list(df_may.columns.values))
Ce qui donne:
ValueError: Buffer has wrong number of dimensions (expected 1, got 2)
Ce qui me manque? Je voudrais faire un df avec toutes les lignes ajoutées, et attr_1, attr_2, attr_3 peuplée, si possible, NaN où ils ne se présentent pas. Cela me semble assez typique de flux de travail pour les données munging, mais je suis coincé.
Merci d'avance.
source d'informationauteur economy
Vous devez vous connecter pour publier un commentaire.
Je pense que dans ce cas
concat
est ce que vous voulez:en passant
axis=0
ici vous sont empilage de la df sur le dessus les uns des autres qui, je crois, est ce que vous voulez, puis la production deNaN
de la valeur là où ils sont absents de leurs respectifs dfs.J'ai eu ce problème aujourd'hui, à l'aide de l'un de concat, d'ajouter ou de fusion, et j'ai eu autour de lui par l'ajout d'un assistant de colonnes numérotées de manière séquentielle et puis en faisant une jointure externe