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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值