我正在使用 python 和它的 vs code 库。 我在那里做数据分析。 我尝试查找与名为“纸牌屋”的特定标题相关的数据 在这里,
数据 = pd.read_csv(r"file.csv")
data[data['标题'].str.contains(['纸牌屋'])]
但是,当我运行这段代码时,我得到了
类型错误:不可散列的类型:“列表” 输出被截断。作为可滚动元素查看或在文本编辑器中打开。调整单元输出设置...
发生 TypeError: unhashable type: 'list' 错误是因为您将列表 ['House of Cards'] 直接传递给 str.contains() 方法。此方法需要字符串模式或字符串集,而不是列表。
要解决此问题,您可以执行以下操作:
使用字符串而不是列表:
data[data['Title'].str.contains('House of Cards')]
如果需要搜索多个标题,可以使用集合或列表并通过 lambda 函数传递:
titles = ['House of Cards', 'Game of Thrones', 'Breaking Bad']
data[data['Title'].apply(lambda x: x.str.contains('|'.join(titles)))]
在这种情况下,标题列表由字符 | 连接起来。 (管道)创建一个正则表达式模式来搜索任何给定的标题。
此外,请确保“标题”列包含字符串值。如果它包含 NaN 或 null 值,您可能需要在应用过滤器之前适当处理它们。