本文介绍了在 pandas 中,如何根据值的类型过滤系列?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
给出类似Series
的
import pandas as pd
s = pd.Series(['foo', 'bar', 42])
我想获得一个'sub-series'pd.Series(['foo', 'bar'])
,其中所有值都是字符串.我已经尝试过像这样的布尔索引:
I would like to obtain a 'sub-series' pd.Series(['foo', 'bar'])
in which all values are strings. I've tried Boolean indexing like so:
s[isinstance(s, str)]
但这给出了一个
到目前为止,在寻找合适的方法时,我遇到了选择,但这会在标签上强加标准,而不是值.在这种情况下,如何基于值的类型进行过滤?
In my search for suitable methods so far I came across select, but this imposes a criterion on the labels, not the values. How can I filter based on (the type of) the values in this case?
推荐答案
使用apply
或列表理解:
s[s.apply(lambda x: isinstance(x, str))]
与谢谢Jon Clements♦
一样:
s[s.apply(isinstance, args=(str,))]
s[[isinstance(x, str) for x in s]]
所有返回:
0 foo
1 bar
dtype: object
不建议这样做,谢谢:
s[s.apply(type) == str]
这篇关于在 pandas 中,如何根据值的类型过滤系列?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!