Jak scalić dwie ramki danych w pandach Pythona?

12

Mam dwie ramki danych df1 i df2 i chciałbym je połączyć w jedną ramkę danych. To tak, jakby df1 i df2 zostały utworzone przez podzielenie pojedynczej ramki danych pionowo w dół na środku, jak rozerwanie kawałka papieru zawierającego listę na pół, tak aby połowa kolumn była na jednym papierze, a połowa kolumn na drugim. Chciałbym połączyć je z powrotem. Jak mam to zrobić?

sebastianspiegel
źródło

Odpowiedzi:

7

Pandy mają wbudowaną funkcję scalania. Proszę zapoznać się z dokumentacją

End-result should be something like this:
df_merged = pd.merge(df1, df2, left_on=['name_indexcolumn_df1_here'],
              right_on=['name_indexcolumn_df2_here'],
              how='inner')
Rolf Schorpion
źródło
4

Jeśli podzielisz DataFrame „pionowo”, to masz dwie DataFrame, które mają ten sam indeks.

Możesz użyć funkcji scalania lub funkcji konkat .

Z concat z byłoby coś takiego:

pandas.DataFrame.concat([df1,df2], axis=1)

Dzięki scaleniu z byłoby coś takiego:

pandas.Dataframe.merge([df1,df2], left_index=True)

Bardziej złożone opcje łączenia można znaleźć w samouczku Scalanie, łączenie i konkatowanie pand .

João Almeida
źródło
1
scalanie jest złe ... czy próbowałeś uruchomić kod?
Jorge Leitao,