熊猫掉落重复系列散列错误

时间:2018-08-27 20:42:00

标签: python pandas

我创建了一个熊猫数据框,但是当删除重复的行时,出现错误:

  

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

1 个答案:

答案 0 :(得分:5)

您的'statement'列中的各个元素是pandas.Series。这清楚地表明事情已误入歧途。您可以通过运行data['statement'].apply(type)来验证我的主张,您应该会看到一堆<pandas.Series>或类似内容。

如果您遇到这种情况,请尝试

df[~df['statement'].apply(tuple).duplicated()]

这会强制'statement'列中的每个元素都是一个{strong>可散列的tuple。然后,您可以找到重复的行并进行过滤。