Методы объединения фреймов данных в Python с примерами кода

Чтобы объединить фреймы данных в Python, вы можете использовать различные методы в зависимости от ваших конкретных требований. Вот несколько часто используемых методов с примерами кода:

  1. pd.concat(): эта функция объединяет кадры данных по определенной оси (строкам или столбцам).

    import pandas as pd
    df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
    df2 = pd.DataFrame({'A': [7, 8, 9], 'B': [10, 11, 12]})
    merged_df = pd.concat([df1, df2], axis=0)  # Concatenating along rows
  2. df.append(): этот метод добавляет один кадр данных к другому по вертикали.

    import pandas as pd
    df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
    df2 = pd.DataFrame({'A': [7, 8, 9], 'B': [10, 11, 12]})
    merged_df = df1.append(df2)  # Appending df2 to df1
  3. df.merge(): этот метод объединяет кадры данных на основе общих столбцов или индексов.

    import pandas as pd
    df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'Key': ['K1', 'K2', 'K3']})
    df2 = pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12], 'Key': ['K1', 'K2', 'K4']})
    merged_df = df1.merge(df2, on='Key')  # Merging based on 'Key' column
  4. df.join(): этот метод объединяет два кадра данных на основе их индексов.

    import pandas as pd
    df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=[10, 20, 30])
    df2 = pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12]}, index=[10, 20, 40])
    merged_df = df1.join(df2, lsuffix='_left', rsuffix='_right')  # Joining based on indices
  5. df.merge() с различными типами соединений: вы можете указать различные типы соединений, например внутреннее, внешнее, левое или правое.

    import pandas as pd
    df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'Key': ['K1', 'K2', 'K3']})
    df2 = pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12], 'Key': ['K1', 'K2', 'K4']})
    # Inner join
    inner_join = df1.merge(df2, on='Key', how='inner')
    # Outer join
    outer_join = df1.merge(df2, on='Key', how='outer')
    # Left join
    left_join = df1.merge(df2, on='Key', how='left')
    # Right join
    right_join = df1.merge(df2, on='Key', how='right')