#python #pandas #dataframe
#python #pandas #фрейм данных
Вопрос:
Если выполнено условие в столбце 1 И если выполнено условие в столбце 2, то измените значение в столбце 1. Эта логика, похоже, работает и возвращает True или False для каждой строки в df
data.id.isin([10,20,30,40]) amp; (data.source.isnull()
Что я хотел бы сделать сейчас, так это изменить значение data.id до 50
Я не получаю ошибку с этой логикой, но значение не меняется
data.loc[(data.id.isin([10,20,30,40])) amp; (data.source.isnull()), 'id'] = 50
Комментарии:
1. можете ли вы воспроизвести это в примере df?
Ответ №1:
Когда я использовал ваш код в этом приведенном примере, значение, похоже, изменилось правильно
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])) amp; (data.source.isnull()), 'id'] = 50
После этого столбец id имеет значения [ 0, 50, 50, 30, 50, 50, 60, 70, 80, 90]
Комментарии:
1. Я не уверен, что произошло. Я работал в Jupyter Notebook. Я закрылся и попробовал снова, и это работает. Спасибо за помощь!