python 把表A a列的值填补到表B b列对应的空白格

import pandas as pd

# 创建示例DataFrame df_a和df_b
df_a = pd.DataFrame({
    'a': [1, 2, 3, 4, 5]
})

df_b = pd.DataFrame({
    'b': [1, None, 3, None, 5]
})

# 假设两个DataFrame有相同的索引,或者你可以根据某个列来对齐它们
# 这里我们假设它们已经有相同的索引

# 使用combine_first方法来填补df_b中b列的缺失值,用df_a中a列的值来填补
df_b['b'] = df_b['b'].combine_first(df_a['a'])

print(df_b)

在这个例子中,df_b中的b列原先有两个None值,它们被df_aa列对应的值填补了。

如果你的两个DataFrame没有相同的索引,但是它们有一个共同的列可以用来对齐(比如“合同编号”),你可以首先使用pd.merge()或者set_index()来对齐它们,然后再进行值的填补。

# 假设df_a和df_b都有一个共同的列'合同编号'来对齐
df_a = pd.DataFrame({
    '合同编号': ['A001', 'A002', 'A003'],
    'a': [1, 2, 3]
})

df_b = pd.DataFrame({
    '合同编号': ['A001', 'A002', 'A003'],
    'b': [1, None, 3]
})

# 使用'合同编号'列来合并df_a和df_b
merged_df = pd.merge(df_b, df_a[['合同编号', 'a']], on='合同编号', how='left')

# 使用combine_first来填补b列的缺失值
merged_df['b'] = merged_df['b'].combine_first(merged_df['a'])

# 如果需要,删除额外的列'a'
merged_df.drop(columns=['a'], inplace=True)

print(merged_df)

这样就可以根据“合同编号”列来填补df_bb列的空白格了。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值