[英]Python Pandas - check if value exists in 1 dataframe and update value in another dataframe based on results
我有 2 个数据框。
Orders
和Receipts
。
Orders
和Receipts
都有一个名为Request Number
的列。
订单有一个名为Received
的附加列。
我需要比较['Request Number']
列并确定任一数据帧内是否存在匹配字段(例如 123456)。
如果它存在于任一数据帧中,则Orders
Received
value 应更改为True
否则保持False
。
我尝试了以下但没有运气 - 尽管知道有匹配的字段,但它输出False
。
orders['Received'] = orders['Request Number'].apply(lambda x: True if x in receipts['Request Number'] else False)
任何建议为什么它不起作用?
提前致谢。
使用Series.isin
检查会员资格:
orders['Received'] = orders['Request Number'].isin(receipts['Request Number'])
任何建议为什么它不起作用?
您可以使用 in 运算符进行检查:
在Series 上使用 Python in运算符测试索引中的成员资格,而不是值之间的成员资格。
所以可能的解决方案是将值转换为 numpy 数组:
orders['Received'] = (orders['Request Number']
.apply(lambda x: x in receipts['Request Number'].to_numpy()))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.