gpt4 book ai didi

python - 通过内部设置的列去除重复的行

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

给出这个数据示例,我想对包含相同的行进行重复数据删除,这对于简单的数据来说很容易,但是

以这个例子

df1 = pd.DataFrame({'NAME':['foo foo','foo foo fighter','bar','bar bar'],'SET_NAME':[{'foo'},{'foo','fighter'},{'bar'},{'bar'}]})

输出[1]:

    NAME            SET_NAME
0 foo foo {foo}
1 foo foo fighter {foo, fighter}
2 bar {bar}
3 bar bar {bar}

通过使用类似 df1.drop_duplicates(subset=['SET_NAME']) (不可哈希类型:'set'错误)我希望得到这个:

输出[2]:

    NAME            SET_NAME
0 foo foo {foo}
1 foo foo fighter {foo, fighter}
2 bar {bar}

请注意,第 2 行和第 3 行已进行重复数据删除,因为它们在集合中具有相同的内容。

最佳答案

如果将 dtype 转换为 str,然后调用 duplicated并使用 ~ 反转掩码:

In[131]:
df1.loc[~df1['SET_NAME'].astype(str).duplicated()]

Out[131]:
NAME SET_NAME
0 foo foo {foo}
1 foo foo fighter {fighter, foo}
2 bar {bar}

然后它将能够找到重复项。请注意,我强烈建议将非标量值存储在 DataFrame 中,因为您会丢失矢量化操作

关于python - 通过内部设置的列去除重复的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51764091/

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