我正在对数据集进行探索性数据分析

问题描述 投票:0回答:1

我正在使用 python 和它的 vs code 库。 我在那里做数据分析。 我尝试查找与名为“纸牌屋”的特定标题相关的数据 在这里,

数据 = pd.read_csv(r"file.csv")

data[data['标题'].str.contains(['纸牌屋'])]

但是,当我运行这段代码时,我得到了

类型错误:不可散列的类型:“列表” 输出被截断。作为可滚动元素查看或在文本编辑器中打开。调整单元输出设置...

python pandas dataframe jupyter
1个回答
0
投票

发生 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 值,您可能需要在应用过滤器之前适当处理它们。

© www.soinside.com 2019 - 2024. All rights reserved.