Я хочу назначить NaN для строк столбца в кадре данных Pandas при выполнении некоторых условий.
Для воспроизводимого примера здесь приведены некоторые данные:
'{"Price":{"1581292800000":21.6800003052,"1581379200000":21.6000003815,"1581465600000":21.6000003815,"1581552000000":21.6000003815,"1581638400000":22.1599998474,"1581984000000":21.9300003052,"1582070400000":22.0,"1582156800000":21.9300003052,"1582243200000":22.0200004578,"1582502400000":21.8899993896,"1582588800000":21.9699993134,"1582675200000":21.9599990845,"1582761600000":21.8500003815,"1582848000000":22.0300006866,"1583107200000":21.8600006104,"1583193600000":21.8199996948,"1583280000000":21.9699993134,"1583366400000":22.0100002289,"1583452800000":21.7399997711,"1583712000000":21.5100002289},"Target10":{"1581292800000":22.9500007629,"1581379200000":23.1000003815,"1581465600000":23.0300006866,"1581552000000":22.7999992371,"1581638400000":22.9599990845,"1581984000000":22.5799999237,"1582070400000":22.3799991608,"1582156800000":22.25,"1582243200000":22.4699993134,"1582502400000":22.2900009155,"1582588800000":22.3248996735,"1582675200000":null,"1582761600000":null,"1582848000000":null,"1583107200000":null,"1583193600000":null,"1583280000000":null,"1583366400000":null,"1583452800000":null,"1583712000000":null}}'
В этом конкретном игрушечном примере я хочу назначить NaN для столбца «Цена», если в столбце «Цель 10» есть NaN. (в общем случае условие может быть более сложным)
Эта строка кода достигает указанной цели c:
toy_data.Price.where(toy_data.Target10.notnull(), toy_data.Target10)
Однако, когда я пытаюсь использовать запрос и назначить NaN к целевому столбцу у меня не получается:
toy_data.query('Target10.isnull()', engine = 'python').Price = np.nan
Приведенная выше строка оставляет toy_data
без изменений.
Почему и как я должен использовать query
для замены значений в определенных строках?