如何在Python中使用groupby删除列表中的dup?

2024-05-15 14:02:46 发布

您现在位置:Python中文网/ 问答频道 /正文

有一个大的数据文件,我需要删除行中的dup。我使用groupby对ID进行分组,然后将12列中的值添加到一个列表中。我需要的最后一步是删除列表中是否有重复的值

我知道set()将删除传统列表中的dup,但我不确定这是否适用于我的groupby,或者是否有更好的方法

import pandas as pd

df = pd.read_csv("Test.csv")

grouped = df.groupby('<ID>')['fb1','fb2','fb3'].apply(lambda 
x: x.values.tolist())

当前,您可以看到dup“Includes Handle”

US7493577[[不可回收电池,可空运

US7493578[[不可回收电池,可空运

US7493586[[包括手柄,包括手柄,nan]]

我想要的结果

US7493577[[不可回收电池,可空运

US7493578[[不可回收电池,可空运

US7493586[[包括手柄,nan]]


Tags: csviddf列表电池数据文件nanpd
1条回答
网友
1楼 · 发布于 2024-05-15 14:02:46

我相信在lambda函数和集合理解中需要sets:

f = lambda x: set([z for y in x.values for z in y])
grouped = df.groupby('<ID>')['fb1','fb2','fb3'].apply(f)

如果需要,还可以删除缺少的值,通过比较z == z来筛选它们,因为np.nan != np.nan-docs

f = lambda x: set([z for y in x.values for z in y if z == z])
grouped = df.groupby('<ID>')['fb1','fb2','fb3'].apply(f)

相关问题 更多 >