在数据框 python 的列表中删除重复项

drop duplicates in list within data frames python

提问人:Kellie 提问时间:11/5/2023 更新时间:11/5/2023 访问量:31

问:

我有一个数据框,我用教科书 ISBN 分组,我用这些书的学校、州和年级。我想删除数据帧列表中的重复项。我已经在状态列的屏幕截图中尝试了以下步骤作为测试,但我不确定它是列表、数据帧还是系列,因为我尝试了大量代码以查看是否有任何代码可以工作。想知道是否有人可以解释数据帧中这些“列表”的结构以及删除重复项的任何代码。步骤1 步骤2 步骤3 步骤4

Python 数据帧 列表 序列 删除重复项

评论

0赞 Сергей Кох 11/5/2023
meta.stackoverflow.com/questions/285551/......
0赞 D.L 11/5/2023
发布代码而不是代码的图片。用户需要能够快速复制问题,这是文本允许的(而图片不允许)。如何提问

答:

1赞 Tanishq Chaudhary 11/5/2023 #1

是一种数据类型。但是,此系列的每个元素都是一个列表,因为您在聚合过程中对其进行了转换。因此,当您在 上 时,它会将每个视为一个列表。df['State']<class 'pandas.core.series.Series'>.apply()lambdadf['State']x

您可以代替 .它将执行相同的工作 - 删除重复项。.apply()lambda x: list(set(x))))lambda x: x.drop_duplicates()

示例示例:

import pandas as pd

df = pd.DataFrame(
    {
        "val": [1, 1, 2, 3, 4, 3, 2],
        "data": ["X", "Y", "X", "X", "X", "X", "X"],
    }
)

df = df.groupby(["val"]).agg(lambda x: x.tolist())
print(type(df["data"]))
print((df["data"].apply(lambda x: list(set(x)))))

输出:

<class 'pandas.core.series.Series'>
val
1    [Y, X]
2       [X]
3       [X]
4       [X]
Name: data, dtype: object