python之如何过滤 Pandas 系列索引中的字符串
你猜
阅读:34
2025-02-15 21:57:57
评论:0
我试图通过在包含字符串的索引上使用 bool 表达式来过滤 Pandas 系列。例如,在下面的代码中,我希望通过为索引项包含子字符串“man”的行过滤另一个系列 (S) 来创建一个新系列 (Sman):
from pandas import Series
S = Series({'moondog':12,'catman':23, 'batman':31, 'catdog':42})
Sman = S['man' in S]
但是,Sman 的结果只是数字 31,而不是像我希望的那样包含“catman”和“batman”行的新系列。
我究竟做错了什么??
请您参考如下方法:
您可以使用 filter
方法:
In [11]: S.filter(like='man')
Out[11]:
batman 31
catman 23
dtype: int64
手动替代方法是:
In [12]: S[['man' in i for i in S.index]]
Out[12]:
batman 31
catman 23
dtype: int64
您的方法不起作用的原因是
'man' in S
刚刚返回
False
,因为这会检查索引中是否包含确切的标签“man”(事实并非如此)。
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。