如何确定Pandas系列中是否存在非字符串值

时间:2017-01-30 14:49:04

标签: python pandas

我正在尝试在Pandas系列上使用布尔索引,以确定我的系列中是否存在不是字符串的值。

到目前为止,我的方法是:

contains_non_string = s[type(s) != str].any()

当我运行它时,我收到以下错误:

TypeError: 'int' object is not subscriptable

如何正确判断系列中是否存在非字符串值?我正在运行Python 3.6和Pandas 0.19.2。

2 个答案:

答案 0 :(得分:1)

你可以做点什么:

contains_non_string = s[s.apply(type) != str].any()

答案 1 :(得分:0)

另一种解决方案:

In [22]: s = pd.Series([0,'sss',np.nan,3,'aaa',4])

In [23]: s
Out[23]:
0      0
1    sss
2    NaN
3      3
4    aaa
5      4
dtype: object

In [24]: (s.map(type) != str).any()
Out[24]: True

In [25]: s[s.map(type).ne(str)]
Out[25]:
0      0
2    NaN
3      3
5      4
dtype: object