python - Pandas :TypeError:无法散列的类型: 'list'

标签 python list pandas hash duplicates

我有以下 df:

df = pd.DataFrame(
    [
        [["John Muller"], "person", [8866155845]],
        [["Innovation Division"], "company", np.nan],
        [["Carol Sway"], "person", [8866155845]],
    ],
    columns=["name", "kind", "phone"],
)

# Out:
#                     name     kind         phone
# 0          [John Muller]   person  [8866155845]
# 1  [Innovation Division]  company           NaN
# 2           [Carol Sway]   person  [8866155845]

我想查找电话号码的重复项。但是 df 中的对象是列表,所以使用:

df.duplicated('phone') 

将产生错误:

TypeError: unhashable type: 'list'

最佳答案

您还可以使用 applymap解决这个问题非常方便的函数:

# get duplicated row
df2 = df[df.applymap(lambda x: x[0] if isinstance(x, list) else x).duplicated('phone')]

print(df2)

           name    kind         phone
2  [Carol Sway]  person  [8866155845]

关于python - Pandas :TypeError:无法散列的类型: 'list',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50020231/

相关文章:

Python/Django - 如何在导航到新 View 之前获取页面 URL

python - 创建相应的字母数字元素列表

python - 为什么 `describe` 函数使用科学记数法显示 float ?

python - 如何修复更改密码 View 的测试(Django REST Framework)?

python - wxPython 通过 py2app : "no appropriate 64-bit architecture" ERROR even though 32-bit preference set

php - 即使使用了 trim,也只有列表中的第一个条目进入 mysql 表 PHP

arrays - 如何在protobuf重复字段中发送0?

python - 将 numpy.array 存储在 Pandas.DataFrame 的单元格中

python - 选择两个给定日期之间的 pandas 数据框,其中两列的值相等

python - 如何将 Wordpress 放在 Heroku 上运行的 Flask 应用程序的/blog 目录中