Próbuję scalić między dwiema ramkami danych. Każda ramka danych ma dwa poziomy indeksu (data, cusip). W kolumnach niektóre kolumny odpowiadają między sobą (np. Walutą, datą przywiązania).Pandas Merge - jak uniknąć duplikowania kolumn
Jaki jest najlepszy sposób łączenia tych elementów według indeksu, ale nie należy pobierać dwóch kopii waluty i daty zawieszenia.
Każda ramka danych ma 90 kolumn, więc staram się nie pisać wszystkiego ręcznie.
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
...
Jeśli zrobić:
dfNew = merge(df, df2, left_index=True, right_index=True, how='outer')
uzyskać
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
Dziękujemy! ...
Praktycznym rozwiązaniem może być usunięcie fałszywych kolumn. Chciałbym jednak zobaczyć lepszą odpowiedź. – Marcin
Dlaczego nie wystarczy wybrać kolumny, które chcesz scalić w następujący sposób: 'dfNew = merge (df, df2 [['' data_col_2 ']], left_index = True, right_index = True, how =' outer ')' to unika duplikatu kolumny i konflikt – EdChum
Zgadzam się na mniejsze ramki danych, ale każda ramka danych ma 90 kolumn i może być 10 nakładających się kolumn. – user1911092