Sto tentando un'unione tra due frame di dati. Ogni frame di dati ha due livelli di indice (data, cusip). Nelle colonne, alcune colonne corrispondono tra le due (valuta, data di aggiustamento) per esempio.Panda unione - Come evitare la duplicazione delle colonne
Qual è il modo migliore per unire questi per indice, ma per non prendere due copie di valuta e data di registrazione.
Ogni frame di dati è 90 colonne, quindi sto cercando di evitare di scrivere tutto a mano.
df: currency adj_date data_col1 ...
date cusip
2012-01-01 XSDP USD 2012-01-03 0.45
...
df2: currency adj_date data_col2 ...
date cusip
2012-01-01 XSDP USD 2012-01-03 0.45
...
Se lo faccio:
dfNew = merge(df, df2, left_index=True, right_index=True, how='outer')
ottengo
dfNew: currency_x adj_date_x data_col2 ... currency_y adj_date_y
date cusip
2012-01-01 XSDP USD 2012-01-03 0.45 USD 2012-01-03
Grazie! ...
Una soluzione pratica potrebbe essere quella di eliminare le colonne spurie. Mi piacerebbe vedere una risposta migliore, però. – Marcin
Perché non selezionare semplicemente le colonne su cui vuoi unire in questo modo: 'dfNew = unisci (df, df2 [['data_col_2']], left_index = True, right_index = True, how = 'outer')' questo evita il duplicato colonne e scontro – EdChum
Sono d'accordo per i dataframmi più piccoli, ma ogni dataframe è di 90 colonne e possono esserci 10 colonne sovrapposte. – user1911092