Удаление / Выбор строк из панд на основе условий в нескольких столбцах - PullRequest
1 голос
/ 08 мая 2019

Из фрейма данных pandas мне нужно удалить определенные строки на основе условия, примененного к двум столбцам фрейма данных.

Фрейм данных

          0         1         2         3
0 -0.225730 -1.376075  0.187749  0.763307
1  0.031392  0.752496 -1.504769 -1.247581
2 -0.442992 -0.323782 -0.710859 -0.502574
3 -0.948055 -0.224910 -1.337001  3.328741
4  1.879985 -0.968238  1.229118 -1.044477
5  0.440025 -0.809856 -0.336522  0.787792
6  1.499040  0.195022  0.387194  0.952725
7 -0.923592 -1.394025 -0.623201 -0.738013

Мне нужно удалить некоторые строки, где разница между column 1 и columns 2 меньше порога t.

abs(column1.iloc[index]-column2.iloc[index]) < t

Я видел примеры, когда условия применяются индивидуально к значениям столбцов, но не нашел ничего, где строка удаляется на основе условия, примененного к нескольким столбцам.

1 Ответ

2 голосов
/ 08 мая 2019

Сначала выберите столбцы по DataFrame.iloc для позиций, вычтите, получите Series.abs, сравните по порогу с inverse оператором, подобным < до >= или > и фильтрация по boolean indexing:

df = df[(df.iloc[:, 0]-df.iloc[:, 1]).abs() >= t]

При необходимости выберите столбцы по именам, здесь 0 и 1:

df = df[(df[0]-df[1]).abs() >= t]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...