Извините, я не смог найти для него подходящего названия. Не стесняйтесь менять его.
Это мой примерный фрейм данных
ID,Val1,Val2,Val3
1,10,9,11
2,14,15,16
3,17,18,1
1,22,25,3
Я хочу проверить значение строки за строкой для каждого столбца, кроме идентификатора, и если существует минимальное число, превышающее 4, я бы хотел удалить эти столбцы.
Здесь, в этом случае, идентификаторы 1 (вверху) и 2 имеют минимальное число больше 4. Поэтому я хочу удалить обе эти строки из кадра данных.
Я не могу проверить использование имен столбцов, потому что в моем реальном фрейме данных у меня будет 100 столбцов, и я даже не знаю их имени.
Чтобы найти минимальное значение для каждой строки, я использую idxmin
.
df1 = df.set_index('ID').idxmin(axis=1).reset_index(name= 'New')
У меня есть вывод этого
ID New
1 Val2
2 Val1
3 Val3
1 Val3
У меня такой вопрос, есть ли способ, которым я могу отслеживать значение, соответствующее этим новым выходным данным, чтобы я мог просто применить (df1['New] > some conditions)
и удалить эти строки в зависимости от условий.
например, в этом случае конечный результат будет (после удаления этих строк минимальное число больше 4)
ID New
3 Val3
1 Val3
Или есть другой способ проще?