gpt4 book ai didi

python - 使用 Python Pandas 检查某个项目是否先前出现在项目列表中

转载 作者:行者123 更新时间:2023-12-01 01:50:45 27 4
gpt4 key购买 nike

我有下表,其中包含 ID,对于每个 ID,我有篮子 1、篮子 2,最后是篮子中的产品。

我想在已排序表中查找(按 ID 从 A-Z、篮子 1 ASC 和篮子 2 ASC 排序)每个 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 列:已存在)时遇到困难。

Table - Raw Data

最佳答案

创建一个 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'

现在加入此列df_new['Existed']与您的df并用“Y”填充缺失值

df = df.join(df_new['Existed']).fillna('Y')

如果您想要产品和现有产品的列表,请打印此

df.groupby('ID')['Product','Existed'].agg(lambda x: list(x))

关于python - 使用 Python Pandas 检查某个项目是否先前出现在项目列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50743473/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com