Замените строку в Pandas DataFrame на «NaN» в зависимости от условия - PullRequest
0 голосов
/ 05 августа 2020

У меня есть Pandas DataFrame с именем df (378000, 82), и я хотел бы заменить всю строку на NaN на основе определенного условия c. Условие для любого значения в столбце df.halon_gas, которое> 20, я хочу заменить всю эту строку на NaN. Именно так я хочу фильтровать свои данные, чтобы не потерять значения индекса.

Спасибо!

Ответы [ 2 ]

1 голос
/ 05 августа 2020

Прежде всего получить все индексы значений ниже 20

    idx = df[df.halon_gas >= 20].index

Затем установите значения для всех столбцов и всех столбцов ниже 200 на Нет

    df.set_value(idx, df.columns , None)

Это должно написать None / Nan в строках со значением ниже 20

1 голос
/ 05 августа 2020

Если вас устраивает отсутствие строк, я предлагаю вам сделать это:

df.reset_index(level=0, inplace=True)
df = df[df.halon_gas <= 20]
df.set_index("index", inplace=True)

Здесь происходит следующее:

  1. Индекс сбрасывается, поэтому у вас есть дополнительный столбец с предварительным удалением значений индекса.
  2. Сохраняются только строки, в которых df.halon_gas <= 20. </li>
  3. Старые значения индекса устанавливаются как индекс для фрейма данных снова.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...