我创建了一个pandas数据帧但是当删除重复的行时,我得到了错误:
TypeError:'Series'对象是可变的,因此它们不能被散列
运行时会发生这种情况:
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())
Run Code Online (Sandbox Code Playgroud)
信息返回:
> 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
Run Code Online (Sandbox Code Playgroud)
'statement'列中的各个元素是pandas.Series.这是一个明显的迹象,事情已经误入歧途.您可以通过运行来验证我的声明, data['statement'].apply(type)您应该看到一堆<pandas.Series>或类似的东西.
如果你遇到这种情况,试试吧
df[~df['statement'].apply(tuple).duplicated()]
Run Code Online (Sandbox Code Playgroud)
这迫使的每个元件'statement'列是一个tuple其是可哈希.然后你可以找到重复的行和过滤器.