我有下表:
我想在列出唯一值的同一数据框中创建新的数据框或列。例如
我使用了以下代码:
data.groupby('EMAIL')['Classification'].transform('nunique')
但是它给了我很多唯一值(对于CLASSIFICATION,它是2), 但是我想记下列表格式的值。这样一来,我将删除重复的行,并为每个唯一的电子邮件ID放入一行。请对此提供建议。
谢谢!
答案 0 :(得分:3)
为了性能起见,将set
用于唯一值并传递到GroupBy.agg
中的lambda函数,顺序应与原始顺序不同:
df = data.groupby('EMAIL').agg(lambda x: ','.join(set(x))).reset_index()
对于与原始使用字典技巧相同的命令:
f = ','.join(dict.fromkeys(x).keys())
df = data.groupby('EMAIL').agg(f).reset_index()
答案 1 :(得分:0)
将df.groupby(as_index=False)
与df.groupby.agg
一起使用:
data.groupby('EMAIL',as_index=False).agg(lambda x: ','.join(x.unique()))