gpt4 book ai didi

python - 从列表格式的数据框列中删除重复项

转载 作者:行者123 更新时间:2023-12-01 01:40:20 26 4
gpt4 key购买 nike

数据框中逐行有大量重复值。下面是一些示例,我查看了其他堆栈溢出问题,但我只能找到列表的答案,而不是数据帧问题的答案。当我传递列表中的值时,我可以删除重复的值,但是,当我像数据帧一样传递它时,它会给出错误: TypeError: unhashable type: 'list'

我在这里做错了什么?

import pandas as pd 
d = {'col1': ['apples are delicious,apples are delicious,apples', 'apples'], 'col2': ['mangoes','oranges']}
df = pd.DataFrame(data=d)
df['col1'] = set(df['col1'].str.split(",")) #error tried list(set()) as well.
df['col2'] = df['col2'].str.split(",") #converting to list
print(df)

最终输出应该删除这样的欺骗:

col1                                         co2
['apples are delicious','apples'] ['mangoes']
['apples'] ['oranges']

最佳答案

您正在整个系列上使用 set,而您需要将 set 应用于系列中的每个元素。为此,您可以使用 pd.Series.map :

df['col1'] = df['col1'].str.split(',').map(set)

print(df)

col1 col2
0 {apples are delicious, apples} [mangoes]
1 {apples} [oranges]

您的错误源于以下事实:您无法拥有一组列表,因为列表不可散列。

如果你确实需要一系列列表作为结果,你可以再次使用相同的方法,即df['col1'].str.split(',').map(set).map(列表)。但请注意,您应该假设没有排序,因为 set 是一个无序集合。

关于python - 从列表格式的数据框列中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51949996/

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