在熊猫索引上使用“应用”

时间:2019-07-15 00:55:38

标签: python pandas

我正在尝试根据索引中字符串的长度来过滤数据框。在以下示例中,我尝试过滤除Foo Bar之外的所有内容:

index    Value
Foo      1
Foo Bar  2
Bar      3

In: df[df.index.apply(lambda x: len(x.split()) > 1] 
Out: AttributeError: 'Index' object has no attribute 'apply'

有什么方法可以直接在索引上执行此操作,而不是重置索引并在新列上应用该功能吗?

2 个答案:

答案 0 :(得分:2)

我们不需要apply

df[df.index.str.count(' ')==1]

要修复代码map

df[df.index.map(lambda x: len(x.split()) > 1)]

答案 1 :(得分:2)

我在以下方面取得了成功:

>>> df[df.index.str.split().str.len() > 1]
         Value
Foo Bar      2

基本上拆分字符串,然后使用len()计算出现的次数。这样做的好处是,您可以按需拆分并按需过滤,而无需使用Apply。