【发布时间】:2013-10-21 12:17:23
【问题描述】:
我有一个如下所示的 pandas 数据框:
categories review_count
0 [Burgers, Fast Food, Restaurants] 137
1 [Steakhouses, Restaurants] 176
2 [Food, Coffee & Tea, American (New), Restaurants] 390
... .... ...
... .... ...
... .... ...
从此数据帧中,我只想提取那些行,其中该行的“类别”列中的列表包含“餐厅”类别。到目前为止,我已经尝试过:
df[[df.categories.isin('Restaurants'),review_count]],
由于我在 dataFrame 中还有其他列,因此我指定了要提取的这两列。但我得到了错误:
TypeError: unhashable type: 'list'
我不太清楚这个错误意味着什么,因为我对 pandas 很陌生。请让我知道如何实现从 dataFrame 中仅提取那些行的目标,其中该行的“categories”列将字符串“Restaurants”作为 categories_list 的一部分。 任何帮助将不胜感激。
提前致谢!
【问题讨论】:
-
“unhashable type”错误通常意味着类型(在这种情况下为 list)是可变的。可变类型不可散列,因为它们在生成散列码后可能会发生变化。发生这种情况是因为您尝试使用列表作为键来检索项目,但由于键必须是可散列的,因此检索失败。
标签: python pandas slice dataframe