如何在两个条件下使用 applymap lambda
How to use applymap lambda with two conditions
我想在 Pandas 数据框中查找重复的行。当我使用 df.duplicated()
时 returns 出现以下错误:
TypeError: unhashable type: 'list'
为了解决这个错误,我尝试了以下方法:
df2 = df[df.applymap(lambda x: x[0] if isinstance(x, list) else x).duplicated()]
但是,我收到一个新的但类似的错误:“TypeError: unhashable type: 'dict'”
有人知道如何在两个条件下使用 applymap lambda
吗? (条件是 if isinstance(x, list)
OR if isinstance(x, dict)
)?
更新:
这是数据示例(df 的前几行):
谢谢!
使用 apply
创建一个包含字典的列,问题是方法 duplicated
使用散列来比较值并且在 Python 字典(和列表)中是不可哈希。
但是字符串是可哈希的,所以你可以添加 .astype(str)
:
df2 = df.applymap(lambda x: x[0] if isinstance(x, list) else x).astype(str).duplicated()
我想在 Pandas 数据框中查找重复的行。当我使用 df.duplicated()
时 returns 出现以下错误:
TypeError: unhashable type: 'list'
为了解决这个错误,我尝试了以下方法:
df2 = df[df.applymap(lambda x: x[0] if isinstance(x, list) else x).duplicated()]
但是,我收到一个新的但类似的错误:“TypeError: unhashable type: 'dict'”
有人知道如何在两个条件下使用 applymap lambda
吗? (条件是 if isinstance(x, list)
OR if isinstance(x, dict)
)?
更新:
这是数据示例(df 的前几行):
谢谢!
使用 apply
创建一个包含字典的列,问题是方法 duplicated
使用散列来比较值并且在 Python 字典(和列表)中是不可哈希。
但是字符串是可哈希的,所以你可以添加 .astype(str)
:
df2 = df.applymap(lambda x: x[0] if isinstance(x, list) else x).astype(str).duplicated()