当前位置: 首页 > 知识库问答 >
问题:

选择具有包含括号的字符串索引的行

柳鸿博
2023-03-14

我的表格review_cp是用啤酒名称编制索引的。我通过以下代码获得了前三个啤酒名称。

top_3_spacy = review_cp.groupby('Name')['Average Evaluation Score'].mean().sort_values(by='Average Evaluation Score', ascending = False).index[:3].tolist()

结果是< code>['Rodenbach Caractère Rouge ',' Dorothy(酒桶陈年)',' Doubleganger']

但是,当我尝试使用review_cp.loc[top_3_spacy[0]选择行时,它给了我一个键错误。

KeyError Traceback(最近一次调用最后一次)~\Anaconda3\lib\site packages\pandas\core\indexs\base。py in get_loc(self,key,method,tolerance)2896尝试:-

熊猫中的pandas_libs\index.pyx。_ libs . index . index engine . get _ loc()

熊猫中的pandas_libs\index.pyx。_ libs . index . index engine . get _ loc()

pandas_libs\index_class_helper.pxi_libs.index.Int64Engine._check_type()

关键错误:“Rodenbach Caractère Rouge”

在处理上述异常期间,发生了另一个异常:

中的KeyError Traceback(最近一次调用最后一次)----

~\Anaconda3\lib\site-packages\pandas\core\indexing.py in getitem(self, key) 1422 1423 maybe_callable = com.apply_if_callable(key, self.obj) -

~\Anaconda3\lib\site packages\pandas\core\indexing。在_getitem_axis(self,key,axis)1848#中的py可以直接查找1849self_validate_key(键,轴)-

~\Anaconda3\lib\site packages\pandas\core\indexing。py in _get_label(self,label,axis)158引发IndexingError(“此处无切片,其他地方处理”)159--

~\Anaconda3\lib\site packages\pandas\core\generic。xs(self,key,axis,level,drop_level)3735 loc中的py,new_index=self.index。get_loc_level(键,drop_level=drop_level)3736
否则:-

~\Anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance) 2897 返回 self._engine.get_loc(key) 2898 除了 KeyError: -

熊猫中的pandas_libs\index.pyx。_ libs . index . index engine . get _ loc()

熊猫中的pandas_libs\index.pyx。_ libs . index . index engine . get _ loc()

pandas_libs\index_class_helper.pxi_libs.index.Int64Engine._check_type()

关键错误:“Rodenbach Caractère Rouge”

我用< code > review _ CP[review _ CP[' Name ']]. str . contains(top _ 3 _ spacy[0])]尝试了另一种方法,对' Rodenbach Caractère Rouge '和' Doubleganger '有效,对' Dorothy(酒桶陈年)'无效。不知道是不是因为支架的原因?

共有2个答案

浦德义
2023-03-14

我想,问题是,该名称不在您的索引中。否则,您的 groupby 语句将无法访问该值。因此,您的索引很可能是自动整数索引。但 .loc 需要索引中的值,在数据帧的索引中找不到名称。

可以使用索引器解决此问题,如 DDD1 帖子中所示。

review_cp['Name'].isin(top_3_spacy)

创建此索引器以选择列表中具有名称的行。

乜坚成
2023-03-14

我怀疑这个问题是由于括号,因为它是字符串的一部分。只要字符串与“名称”列中的名称匹配,就不应该有问题。如果您想获取前3名列表的行,而不是使用loc,您可以使用:

review_cp[review_cp['Name'].isin(top_3_spacy)]

这将隔离您的前 3 名(它应该包括多萝西)。

 类似资料:
  • 问题内容: 我想为站点seo写一个比较过程(t-sql)。 我有一个表,其中包含字段url的一部分的字段“ url”(nvarchar())。例如:“ _mysyte.com/?id=2_ ”。每个URL的此表还包含我需要提取的元数据。 主要问题是网站上的完整url看起来像是“ _mysyte.com/?id=2®ion=0 &page=1_ ”,我只需要忽略一切,除了表中的url: 我的意思是:

  • 我需要从Pandas数据框索引中过滤包含字符串模式的行。 我发现了下面的示例:如何从熊猫数据帧中筛选包含字符串模式的行,其中数据帧使用df[df[“col”].str.contains()]进行过滤,这在本示例中效果很好。 在本例中,如果我将列id复制到索引,我可以使用df.index.str.contains(ball),这也可以正常工作。 但是,当我使用df时。指数str.contains(“

  • 我如何修改这个字符串: 所以它会回来的 (然后我可以把它分开)? 字符串中的数字可以不同。 我试过用。替换

  • 问题内容: 我正在寻找一种快速简便的单行代码,以从文本文件中提取所有包含搜索字符串的大括号分隔的文本块。我只是为此而在Google上发疯,但是每个人似乎都只是在发布有关在没有搜索字符串的情况下在大括号之间获取文本的信息。 我有一个大型文本文件,其内容如下: 方括号中的绝大多数条目都不包含搜索字符串,即“事件”。 我要提取的是每组花括号之间的所有文本(尤其是多行匹配),但前提是所述文本还包含搜索字符

  • 期望的行为 我有一个输入验证,除其他外,测试长度(

  • 问题内容: 最近又了解了JavaScript计时事件。我注意到一个我从未遇到过的奇怪人物。他们使用双引号,然后调用该函数。 例: 我知道JavaScript中的双引号和单引号表示字符串。 我也看到我可以做同样的事情: 带有括号的是指,没有括号的是复制的。当我使用引号和括号时,它越来越疯狂了。 如果有人可以向我解释这三种使用方式之间的区别,我将感到非常高兴setTimeout: 带括号: 没有引号和