我创建了一个熊猫数据框,但是当删除重复的行时,出现错误:
TypeError:“系列”对象是可变的,因此不能进行散列处理
在我跑步时会发生这种情况:
print(type(data)) # <class 'pandas.core.frame.DataFrame'> check that it's not a series
data.drop_duplicates(subset=['statement'], inplace=True)
print(data.info())
信息返回此:
> class 'pandas.core.frame.DataFrame'
> Int64Index: 39671 entries, 0 to 39670
> Data columns (total 4 columns):
> statement 39671 non-null object
> topic_direction 39671 non-null object
> topic 39671 non-null object
> direction 39671 non-null object
> dtypes: object(4)
> memory usage: 1.5+ MB
> None
答案 0 :(得分:5)
您的'statement'
列中的各个元素是pandas.Series
。这清楚地表明事情已误入歧途。您可以通过运行data['statement'].apply(type)
来验证我的主张,您应该会看到一堆<pandas.Series>
或类似内容。
如果您遇到这种情况,请尝试
df[~df['statement'].apply(tuple).duplicated()]
这会强制'statement'
列中的每个元素都是一个{strong>可散列的tuple
。然后,您可以找到重复的行并进行过滤。