python vlookup_python里的vlookup——数据拼接合并

主题词:vlookup,concat,merge,fillna

今天在群里,有一个朋友提起了一个面试题,很简单很简单的题,

说的是AB两表,都有UID列,A表中的数值列有缺失值,请你匹配b表,把a中缺失值换成b表的值,奇就奇在出题人脑子有坑,谁家的数据库是这样的?,而且他还要只看到A表的两列,多一列算我输。(你牛啤)

1.excel-vlookup

其实这个东西excel处理起来真的是再快不过,首先把A表的空值筛选出来了,然后来一个vlookup,再取消筛选,打完收工。

下面就是Python了,群里讨论了半天,顺便我们捋一下Python里的拼接函数。

2.Python-concat都是ID为主键,num为数值

由此可见concat其实就是个拼接函数,无脑拼接

3.Python-merge

merge其实就是数据库里面的join函数。相较于concat,id只有一列了但这个是典型的左连接,他只适应于相同索引,不同列的拼接

4.python-np.where

到现在我们依然没有解决问题,这时候有大佬跳出来说,你不会把id设置索引啊,并提供一种where语法。

where其实就是excel里的if语句,可以看到,是匹配上了,但丢失了索引,同时他是按行匹配,8.8的索引是4,并不是3(同时where还要求AB必须是同样的数据条目,这里data2我删了一条,因为不删会报错)

5.Python-fillna

到最好,我突然想起来为什么不用空值填充?

完美解决问题,而且请注意,这里是按索引填充,3,8.8我多加了一行4,9.9

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值