Python使用特定列内容合并两个DataFrame

要将两个DataFrame进行合并,如data1 和 data2按照第一列的内容纵向合并为一个新的DataFrame,可以使用pandas库中的merge()方法,按照实际需求将how参数设置为‘left’、‘right’、‘outer’、‘inner’。其中:

  • inner: 内连接/交集。保留两个 DataFrame 共有的键,丢弃不匹配的行。
  • outer: 外连接/并集。保留两个 DataFrame 所有的键,缺失的值用 NaN 填充。
  • left: 左连接。保留左边 DataFrame 的所有键,丢弃不匹配的右边 DataFrame 的行。
  • right: 右连接。保留右边 DataFrame 的所有键,丢弃不匹配的左边 DataFrame 的行。
  • 假设data1表示如下:

      col1  col2
    0    A     1
    1    B     2
    2    C     3

    data2表示如下:

      col1 col3
    0    A    x
    1    B    y
    2    D    z

    将col1作为合并的基准,使用"how = inner",代码和结果如下:

    import pandas as pd
    data1 = {'col1': ['A', 'B', 'C'], 'col2': [1, 2, 3]}
    data2 = {'col1': ['A', 'B', 'D'], 'col3': ['x', 'y', 'z']}
    df1 = pd.DataFrame(data1)
    df2 = pd.DataFrame(data2)
    merged_df = pd.merge(df1, df2, on='col1', how='inner')
    print(merged_df)
      col1  col2 col3
    0    A     1    x
    1    B     2    y

    将col1作为合并的基准,使用"how = outer",代码和结果如下:

    merged_df = pd.merge(df1, df2, on='col1', how='outer')
      col1  col2 col3
    0    A   1.0    x
    1    B   2.0    y
    2    C   3.0  NaN
    3    D   NaN    z

    将col1作为合并的基准,使用"how = left",代码和结果如下:

    merged_df = pd.merge(df1, df2, on='col1', how='left')
      col1  col2 col3
    0    A     1    x
    1    B     2    y
    2    C     3  NaN

    将col1作为合并的基准,使用"how = right",代码和结果如下:

    merged_df = pd.merge(df1, df2, on='col1', how='right')
      col1  col2 col3
    0    A   1.0    x
    1    B   2.0    y
    2    D   NaN    z

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python使用特定列内容合并两个DataFrame

    发表评论