繁体   English   中英

Python Pandas - 检查 1 个数据帧中是否存在值并根据结果更新另一个数据帧中的值

[英]Python Pandas - check if value exists in 1 dataframe and update value in another dataframe based on results

我有 2 个数据框。

OrdersReceipts

OrdersReceipts都有一个名为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM