![](/img/trans.png)
[英]How to check whether elements appears in the list only once in python?
[英]Check whether an item appears previously in a list of items using Python Pandas
我有下表,其中包含ID,对于每个ID,我都有购物篮1,购物篮2,最后还有购物篮中的产品。
我想在排序表上查找(从AZ,购物篮1 ASC和购物篮2 ASC对ID进行排序)是否每个ID的每个产品先前都出现过(对于同一ID),然后将Y或N放在新列中(E列) 。
下面是第一个ID的示例:
111AAA222 = [产品1, 产品2,产品3,产品1 , 产品2,产品3,产品1 , 产品 4]
111AAA222 = [N,N,N,Y,Y,Y,Y,N]
该示例显示,列表中从第3位到第6位的产品以前出现在同一列表中。
我在使用python pandas创建具有值Y和N的新列(列E:已存在)时遇到困难。
创建一个df_new
,对数据进行排序,然后将重复项放在“ ID”和“ Product”两列上。 然后创建列N填充的Existed列,因为df_new中的行不是重复项
df_new = df.sort_values(['ID','Basket 1','Basket 2'],0)[['ID','Product']].drop_duplicates()
df_new['Existed'] = 'N'
现在join
此列df_new['Existed']
与你的DF和充满“Y”缺失值
df = df.join(df_new['Existed']).fillna('Y')
如果要列出产品清单并存在,请打印此清单
df.groupby('ID')['Product','Existed'].agg(lambda x: list(x))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.