python - Dataframe使用 '<' 运算符比较字符串,结果不正确
PHP中文网
PHP中文网 2017-04-17 17:35:40
0
1
402

我有一个dataframe里面有一列数据如下,类型是字符串,None时python中的None类型

sample.iloc[0:,6:7]

strive_time
0    2016-04-08 19:11:30
1    2016-04-08 11:46:06
2    None
3    None
4    2016-04-08 20:22:14

我使用<比较大小的时候结果不正确,整个dataframe比较时会导致整个比较结果全是True

sample.iloc[0:,6:7]<'1'

strive_time
0    True
1    True
2    True
3    True
4    True

使用sample.lt或者仅截取单个series的时候比较结果没问题

sample.iloc[0:,6:7].lt('1')

strive_time
0    False
1    False
2    False
3    False
4    False

sample.iloc[0:,6]<'1'

0    False
1    False
2    False
3    False
4    False
Name: strive_time, dtype: bool

这是为何……查了文档也没有找到相关的解释,是不是和里面的None值相关

PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(1)
洪涛

シングルステップデバッグをしてその理由を見てみましょう
「<」のデフォルトは、オーバーロードされた関数 __lt__ を呼び出すことです
コードは _comp_method_FRAME(func, name, str_rep,masker=False) にあります:

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート