我是一名有用的助手,可以为您进行翻译。
我遇到了一个奇怪的问题。我有一个数据框 df
,格式如下:
In [1561]: df
Out[1561]:
A B
0 16.3 1.10
1 23.2 1.33
2 10.7 -0.43
3 5.7 -2.01
4 5.4 -1.86
5 23.5 3.14
我正在比较列 A
中相邻的每两行,并将它们的差异存储在一个新列中:
In [1562]: df['new_diff'] = (df.A - df.A.shift(-1)).fillna(0)
In [1563]: df
Out[1563]:
A B new_diff
0 16.3 1.10 -6.9
1 23.2 1.33 12.5
2 10.7 -0.43 5.0
3 5.7 -2.01 0.3
4 5.4 -1.86 -18.1
5 23.5 3.14 0.0
当我检查
new_diff
等于 5.0
的行时,得到一个空的数据框。但是,当我检查 < 5.0
或者 > 5.0
时,它可以正常工作。请看下面的示例:In [1567]: df[df['new_diff'] == 5.0]
Out[1567]:
Empty DataFrame
Columns: [A, B, new_diff]
Index: []
In [1568]: df[df['new_diff'] > 5.0]
Out[1568]:
A B new_diff
1 23.2 1.33 12.5
In [1569]: df[df['new_diff'] < 5.0]
Out[1569]:
A B new_diff
0 16.3 1.10 -6.9
2 10.7 -0.43 5.0
3 5.7 -2.01 0.3
4 5.4 -1.86 -18.1
5 23.5 3.14 0.0
请告诉我这里我漏掉了什么?
df[df['new_diff'] == 5.0]
? - Mayank Porwal5
实际上是4.999999999999999
,这会带来问题。 - jezrael