如果余数不为0,则删除行

时间:2020-02-04 07:17:52

标签: python pandas numpy

我正在寻找一个脚本,如果['D1']除以0.02时不给出0的余数,它将删除整行。预先感谢!

输入:

D1     Value
0.01    2
0.02    1
0.03    4
0.04    3
0.05    6
0.06    5

所需的输出:

D1     Value
0.02    1
0.04    3
0.06    5

我测试过的代码:

for q in range(len(df)):
   if (df.loc[q, 'D1']) % 0.02 != 0:
      df.drop(q)

1 个答案:

答案 0 :(得分:4)

更改逻辑-如果行等于asked here,则选择行:

df = df[df['D1'] % 0.02 == 0]
print (df)
     D1  Value
1  0.02      1
3  0.04      3

放下是可能的,但过于复杂:

df = df.drop(df.index[df['D1'] % 0.02 != 0])

EDIT由于0.06 % 0.02=0.019999999999999997(我认为是浮点精度)的原因,因此您可以将100的值设为多个值,并将2的值进行比较:

df = df[df['D1'].mul(100) % 2 == 0]
print (df)
     D1  Value
1  0.02      1
3  0.04      3
5  0.06      5