Замена значения столбца на NaN, когда другой столбец имеет определенное значение в пандах - PullRequest
0 голосов
/ 07 июня 2018

У меня есть следующий фрейм данных:

Month,Value1,Value2
02,1,10
03,2,2
04,3,12

В этом фрейме данных я хочу заменять Value1 на NaN каждый раз, когда Value2 равен <до 10. Таким образом, желаемый результат будет выглядеть следующим образом:</p>

Month,Value1,Value2
02,1,10
03,NaN,2
04,3,12

Я попробовал следующий код:

data = pd.read_csv("test.csv", index_col=[0])
data = data.loc[data['Value2'] < 10, 'Value1'] = np.nan

Но, к сожалению, он не работает и возвращает мне следующую ошибку:

AttributeError: 'float' object has no attribute 'loc'

Кто-нибудь знаетЗачем?а может как это исправить?

1 Ответ

0 голосов
/ 07 июня 2018

Вам не нужно двойное назначение.Попробуйте это:

data.loc[data['Value2'] < 10, 'Value1'] = np.nan

Помните, pd.DataFrame.loc может использоваться как в качестве "получателя", так и в качестве "установщика".Поэтому вполне естественно присвоить значение data.loc[slice1, slice2].

...