Скажем, у меня есть выборка строк из данных, хранящихся в переменной errorData. Когда я отображаю эту переменную, отображаются правильные строки (т. Е. Выбор кажется правильным). Моя цель - заменить только строки, соответствующие критериям в моей переменной, на np.nan
errorData = df.loc[(df['Percent'] == 100) &\
(df['Rating1'] != 8) &\
(df['Rating2'] != 1)&\
(df['Grade'] == "NG")]
for i in errorData:
df['Percent'].replace(df['Percent']==100, np.nan,inplace=True)
Однако, похоже, это не работает. Всякий раз, когда я снова сообщаю о процентном столбце после выполнения этой операции, значения с 100 также удаляются из
df['Grade'] == "B"
Я тоже пробовал пару других способов, например:
for i in errorData:
df['Percent'].replace(100, np.nan,inplace=True)
Но опять же, безрезультатно. Извините, я не разместил образцы строк здесь. Я видел, что это было сделано по другим вопросам, но я не совсем уверен в форматировании этого.
Заранее извиняюсь за любые ошибки в вышеуказанном.
Обновление: для уточнения, если я выполню
df.loc[(df['Percent'] == 100) &\
(df['Rating1'] != 8) &\
(df['Rating2'] != 1)&\
(df['Grade'] == "NG")].shape
Он вернул (129,8) - то есть мои действительные строки.
А если я выполню
df['Percent'].isnull().sum()
До изменения я получу 0, но после изменения я получу 400. Это означает, что не редактирует только строки, выбранные в моей переменной erroneousData, и я не могу понять, почему.