我有一个类似下面的系列:
0.0 1243340641
1.0 4403140
2.0 1243340592
3.0 3181787143
4.0 148623845
5.0 148623662
...
5046.0 3181981603
5047.0 1436718983
5048.0 1436719026
5049.0 1436719067
5050.0 1436719283
5051.0 3181984143
我认为应该是int64
dtype,但实际上pandas
将该系列视为object
。
我想检测出使大熊猫认为该系列为object
dtype的哪一行?
答案 0 :(得分:1)
如果混合值-带字符串的数字,我认为需要
print (s[s.apply(lambda x: isinstance(x, str))])
如果要返回所有非字符串值:
print (s[~s.apply(lambda x: isinstance(x, str))])
或整数值:
print (s[s.apply(lambda x: isinstance(x, int))])
示例:
s = pd.Series(['1243340641',4403140,1243340592,'3181787143'], index=[0,1.0,2.0,3.0])
print (s)
0.0 1243340641
1.0 4403140
2.0 1243340592
3.0 3181787143
dtype: object
print (s[s.apply(lambda x: isinstance(x, str))])
0.0 1243340641
3.0 3181787143
dtype: object
print (s[~s.apply(lambda x: isinstance(x, str))])
1.0 4403140
2.0 1243340592
dtype: object
print (s[s.apply(lambda x: isinstance(x, int))])
1.0 4403140
2.0 1243340592
dtype: object