我正在尝试根据索引中字符串的长度来过滤数据框。在以下示例中,我尝试过滤除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'
有什么方法可以直接在索引上执行此操作,而不是重置索引并在新列上应用该功能吗?
答案 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。