Mi manca sicuramente qualcosa di semplice qui. Cercando di unire due dataframe in panda che hanno per lo più gli stessi nomi di colonna, ma il dataframe giusto ha alcune colonne che la sinistra non ha, e viceversa.I panda uniscono due dataframes con colonne diverse
>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
Ho provato unendo con un outer join:
mayjundf = pd.DataFrame.merge(df_may, df_jun, how="outer")
Ma che i rendimenti:
Left data columns not unique: Index([....
ho specificato anche una singola colonna di unirsi (on = " id ", eg), ma che duplica tutte le colonne tranne" id "come attr_1_x, attr_1_y, che non è l'ideale. Ho anche passato l'intero elenco di colonne (ci sono molti) su "On":
mayjundf = pd.DataFrame.merge(df_may, df_jun, how="outer", on=list(df_may.columns.values))
che produce:
ValueError: Buffer has wrong number of dimensions (expected 1, got 2)
Che cosa mi manca? Mi piacerebbe ottenere un df con tutte le righe aggiunte, e attr_1, attr_2, attr_3 popolate dove possibile, NaN dove non vengono mostrate. Questo mi sembra un flusso di lavoro piuttosto tipico per i dati munging, ma sono bloccato.
Grazie in anticipo.
Penso che si desidera 'mayjundf = pd .DataFrame.merge (df_may, df_jun, how = "outer", on = 'id') ' – EdChum
Hai specificato" how "due volte, produce: SyntaxError: argomento keyword ripetuto – economy
In realtà penso che tu voglia:' pd.concat ([df_may, df_jun], axis = 0, ignore_index = True) ' – EdChum