在一个数据帧中,我有大量的重复值。下面是一些示例,我查看了其他堆栈溢出问题,但我只能找到列表的答案,而不能为数据帧问题找到重复。当我在列表中传递值时,我可以删除重复的值,但是当我像数据帧一样传递它时,它会给出错误: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
。为此,可以使用^{您的错误源于您不能拥有
set
个列表,因为列表是不可散列的如果您确实需要一系列列表作为结果,那么可以再次使用相同的方法,即
df['col1'].str.split(',').map(set).map(list)
。但是请注意,您应该假设没有排序,因为set
是无序集合相关问题 更多 >
编程相关推荐