给个Series喜欢
Series
import pandas as pd s = pd.Series(['foo', 'bar', 42])
我想获得一个“子系列” pd.Series(['foo', 'bar']),其中所有值都是字符串。我已经尝试过像这样的布尔索引:
pd.Series(['foo', 'bar'])
s[isinstance(s, str)]
但这给了
KeyError:错误
到目前为止,在寻找合适的方法时,我遇到了select,但这在标签上强加了一个标准,而不是值。在这种情况下,如何基于值的类型进行过滤?
使用apply或列出理解:
apply
s[s.apply(lambda x: isinstance(x, str))]
一样,谢谢Jon Clements♦:
Jon Clements♦
s[s.apply(isinstance, args=(str,))]
s[[isinstance(x, str) for x in s]]
全部返回:
0 foo 1 bar dtype: object
编辑:
不推荐这样做,谢谢cᴏʟᴅsᴘᴇᴇᴅ:
s[s.apply(type) == str]