我正在尝试在Pandas系列上使用布尔索引,以确定我的系列中是否存在不是字符串的值。
到目前为止,我的方法是:
contains_non_string = s[type(s) != str].any()
当我运行它时,我收到以下错误:
TypeError: 'int' object is not subscriptable
如何正确判断系列中是否存在非字符串值?我正在运行Python 3.6和Pandas 0.19.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