当前位置: 首页 > 面试题库 >

Pandas 使用startswith从数据框中选择

杨飞语
2023-03-14
问题内容

这项工作(使用Pandas 12 dev)

table2=table[table['SUBDIVISION'] =='INVERNESS']

然后我意识到我需要使用“开始于”来选择字段,因为我缺少一堆。因此,根据我所能追踪的熊猫文档,我尝试过

criteria = table['SUBDIVISION'].map(lambda x: x.startswith('INVERNESS'))
table2 = table[criteria]

并得到了AttributeError:’float’对象没有属性’startswith’

所以我尝试了具有相同结果的替代语法

table[[x.startswith('INVERNESS') for x in table['SUBDIVISION']]]

参考http://pandas.pydata.org/pandas-docs/stable/indexing.html#boolean-
indexing
第4部分:系列的列表理解和映射方法也可以用于生成更复杂的条件:

我想念什么?


问题答案:

您可以使用str.startswithDataFrame方法给出更一致的结果:

In [11]: s = pd.Series(['a', 'ab', 'c', 11, np.nan])

In [12]: s
Out[12]:
0      a
1     ab
2      c
3     11
4    NaN
dtype: object

In [13]: s.str.startswith('a', na=False)
Out[13]:
0     True
1     True
2    False
3    False
4    False
dtype: bool

并且布尔索引将可以正常工作(我更喜欢使用loc,但是在没有索引的情况下也可以正常使用):

In [14]: s.loc[s.str.startswith('a', na=False)]
Out[14]:
0     a
1    ab
dtype: object

看起来您在系列/列中的至少一个元素是一个浮点数,它没有startswith方法,因此AttributeError,列表推导应该引发相同的错误…



 类似资料:
  • 问题内容: 可以说我有以下熊猫数据框: 我可以根据特定的值进行子集化: 但是如何根据值列表进行子集设置呢?-这样的东西: 问题答案: 您可以使用方法: 并得到相反的用法:

  • 问题内容: 我有一个带有几列的Python pandas数据框。现在,我想将所有值复制到一个列中,以获取一个values_count结果alle值。最后,我需要string1,string2,n的总数。最好的方法是什么? 问题答案: 如果性能是一个问题,请尝试: 或者它变成一个再使用 对于具有少量列的较大(长)DataFrame,循环可能比堆栈快: 此外,还有一个numpy解决方案: 小 长

  • 问题内容: 我在不同的列中有数据,但是我不知道如何提取数据以将其保存在另一个变量中。 如何选择然后将其保存到df1中? 我试过了 似乎没有任何工作。 问题答案: 列名(字符串)无法按照你尝试的方式进行切片。 在这里,你有两个选择。如果从上下文中知道要切出哪些变量,则可以通过将列表传递给语法来仅返回那些列的视图。 或者,如果需要对它们进行数字索引而不是按其名称进行索引(例如,你的代码应在不知道前两列

  • 问题内容: 我有一个DataFrame4列,其中2个包含字符串值。我想知道是否有一种方法可以根据针对特定列的部分字符串匹配来选择行? 换句话说,一个函数或lambda函数将执行以下操作 返回一个布尔值。我熟悉的语法,但似乎无法找到一种使用部分字符串匹配说的方法。 有人可以指出正确的方向吗? 问题答案: 基于github问题#620,看来你很快将能够执行以下操作: 更新:熊猫0.8.1及更高版本中提

  • 基于单个值/标签的切片 基于一个或多个级别的多个标签的切片 布尔条件和表达式的过滤 哪些方法适用于什么情况 为简单起见的假设: 输入数据表没有重复的索引键 下面的输入数据只有两个级别。(此处所示的大多数解决方案都概括为N个级别) 问题2b 我如何获得级别“二”中对应于“t”和“w”的所有值? 如何从检索横截面,即具有索引特定值的单行?具体来说,如何检索的横截面,由 如何选择与和相对应的两行?

  • 问题内容: 我正在尝试从ordereddict创建一个熊猫数据框,以保留值的顺序。但是由于某种原因,在创建数据框后,字段又被弄乱了。 以下是命令字典的列表: 现在,我应该如何从中创建一个熊猫DataFrame?我正在寻找的是类似的东西(重要的是key_a和key_b等列名顺序): 我试过了: 随时提出任何其他问题。 问题答案: 按照此答案,您需要显式指定列顺序: 当然,首先,您需要确保您已订购字典