大家好,我是Python进阶者。
一、前言
前几天在Python最强王者交流群【wen】问了一个Pandas解决实际需求的实战问题。问题如下:
请教:代码的目的为自动填充产品名字,有多个销售数据的表格,如例子,销售数据表格中的的产品名字一列为空,我把销售数据表格与产品信息表格进行根据产品IP进行合并获得产品名字,但有些数据的产品号一列为空,可以根据产品ID进行匹配,请问怎么设置逻辑,当产品号为空时根据产品IP进行匹配呢?
二、实现过程
【瑜亮老师】指出:产品号为空就用id其实就是用id列填充产品号列的空值。
【wen】:大部分数据都有产品号,今天发现有些数据匹配不了,原来产品号缺失。
这里【瑜亮老师】给出了具体的代码,如下所示:
df1 = df1.merge(df2[['产品号', '产品名称']], on='产品号', how='left')
df1.loc[df1['产品号'].isnull(), '产品名称'] = df1.loc[df1['产品号'].isnull(), 'ID'].map(lambda x: df2[df2['ID'] == x]['产品名称'].values[0])
顺利地解决了粉丝的问题。
如果你也有类似这种Python相关的小问题,欢迎随时来交流群学习交流哦,有问必答!
三、总结
大家好,我是Python进阶者。这篇文章主要盘点了一个Pandas解决实际需求的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。
最后感谢粉丝【wen】提出的问题,感谢【瑜亮老师】给出的思路,感谢【莫生气】等人参与学习交流。
【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。