提问人:Kellie 提问时间:11/5/2023 更新时间:11/5/2023 访问量:31
在数据框 python 的列表中删除重复项
drop duplicates in list within data frames python
问:
我有一个数据框,我用教科书 ISBN 分组,我用这些书的学校、州和年级。我想删除数据帧列表中的重复项。我已经在状态列的屏幕截图中尝试了以下步骤作为测试,但我不确定它是列表、数据帧还是系列,因为我尝试了大量代码以查看是否有任何代码可以工作。想知道是否有人可以解释数据帧中这些“列表”的结构以及删除重复项的任何代码。步骤1 步骤2 步骤3 步骤4
答:
1赞
Tanishq Chaudhary
11/5/2023
#1
是一种数据类型。但是,此系列的每个元素都是一个列表,因为您在聚合过程中对其进行了转换。因此,当您在 上 时,它会将每个视为一个列表。df['State']
<class 'pandas.core.series.Series'>
.apply()
lambda
df['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
评论