Удалить строку, если остаток не 0 - PullRequest
1 голос
/ 04 февраля 2020

Я ищу скрипт, который удалит всю строку, если ['D1'] не даст остаток от 0 при делении на 0,02. Заранее спасибо!

Ввод:

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 Ответ

4 голосов
/ 04 февраля 2020

Изменить логи c - выбрать строки, если они равны boolean indexing:

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])

РЕДАКТИРОВАТЬ По какой-то причине 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...