pandas 在另一个表中查找一个表中的值,并使用python相应地标记行

ncecgwcz  于 2023-03-16  发布在  Python
关注(0)|答案(1)|浏览(145)

我有一个订单[orders]和退货[returns]的问题。我有一个很长的订单列表,其中有许多列,其中一个是订单号,另一个退货列表只包含已退货的订单。因此,如果订单已退货,它会在列表[returns]中显示相同的订单号。
我想弄清楚哪些订单已经返回,并以某种方式标记它们。例如,在订单列表中添加一列“返回”,将标记为“y”。
你知道我该怎么做吗?
示例:
订单=['名字','姓氏','订单号'],['约翰','史密斯',39],['玛丽','简',25],['詹妮弗','无名氏',28]]
returns =['日期','订单号'],['01/03/23',39],['01/02/23',28]]
预期结果:
return =['名字','姓氏','订单号','退货'],['约翰','史密斯',39,'Y'],['玛丽','简',25,''],['詹妮弗','女',28,'Y']]
我试过python panda的isin和和一个循环都不起作用。

qyyhg6bp

qyyhg6bp1#

试试这个

orders = [['First Name', 'Last Name', 'OrderNo'],['John', 'Smith', 39], 
['Mary', 'Jane', 25],['Jennifer', 'Doe', 28]]

returns = [['Date', 'OrderNo'],['01/03/23', 39],['01/02/23', 28]]
orders_df = pd.DataFrame(orders[1:], columns=orders[0])
returns_df = pd.DataFrame(returns[1:], columns=returns[0])
orders_df['Returned']=orders_df['OrderNo'].apply(lambda x:'Y' if x in 
list(returns_df['OrderNo']) else 'N')
print(orders_df)

输出:

相关问题