Изменение значения в DataFrame на основе двух условий - PullRequest
0 голосов
/ 07 марта 2019

Если условие в столбце 1 И если условие в столбце 2 выполнено, то измените значение в столбце 1. Эта логика, кажется, работает и возвращает значение True или False для каждой строки в df

data.id.isin([10,20,30,40]) & (data.source.isnull()

Что ясейчас хотел бы изменить значение data.id на 50

Я не получаю сообщение об ошибке с этой логикой, но значение не меняется

data.loc[(data.id.isin([10,20,30,40])) & (data.source.isnull()), 'id'] = 50

1 Ответ

1 голос
/ 07 марта 2019

Когда я использовал ваш код в приведенном примере, значение, похоже, корректно меняется

import pandas as pd
import numpy as np

# Create example dataframe
data = pd.DataFrame(np.arange(0,100,10), columns=['id'])
data.loc[3, 'source'] = 'foo'

# Change value
data.loc[(data.id.isin([10,20,30,40])) & (data.source.isnull()), 'id'] = 50

После этого столбец id имеет значения [0, 50, 50, 30, 50, 50, 60, 70, 80, 90]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...