这是显式减法的结果
>> True - False
1
>> False - True
-1
的结果
>> x = pd.Series([True,False,True])
>> x.diff()
0 NaN
1 True
2 True
dtype: object
但是,我希望得到
0 NaN
1 -1
2 1
dtype: object
为什么结果会有所不同以及大熊猫在这种情况下如何对待bool?
答案 0 :(得分:0)
result = algorithms.diff(_values_from_object(self), periods)
out_arr[res_indexer] = arr[res_indexer] - arr[lag_indexer]
因此,它导致2个numpy布尔数组的减法。
正如评论中指出的那样,numpy以自己的方式减去布尔值,这与本机python减法不同
>> np.array([True, False]) - np.array([False, True])
array([ True, True], dtype=bool)