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ć?

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')

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 .


1
scalanie jest złe ... czy próbowałeś uruchomić kod?
Jorge Leitao,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.