У меня есть датафрейм (df), который выглядит так:
environment event
time
2017-04-28 13:08:22 NaN add_rd
2017-04-28 08:58:40 NaN add_rd
2017-05-03 07:59:35 test add_env
2017-05-03 08:05:14 prod add_env
...
Теперь моя цель - для каждого add_rd
в столбце event
соответствующее значение NaN
в столбце environment
должно быть заменено строкой RD
.
environment event
time
2017-04-28 13:08:22 RD add_rd
2017-04-28 08:58:40 RD add_rd
2017-05-03 07:59:35 test add_env
2017-05-03 08:05:14 prod add_env
...
Что я до сих пор делал
Я наткнулся на df['environment'] = df['environment].fillna('RD')
, который заменяет каждые NaN
(это не то, что я ищу), pd.isnull(df['environment'])
, который обнаруживает пропущенные значения, и np.where(df['environment'], x,y)
, который, кажется, то, что я хочу но не работает. Кроме того, я попробовал это :
import pandas as pd
for env in df['environment']:
if pd.isnull(env) and df['event'] == 'add_rd':
env = 'RD'
Индексы отсутствуют или какой-то итератор для доступа к эквивалентному значению в столбце event
.
И я попробовал это :
df['environment'] = np.where(pd.isnull(df['environment']), df['environment'] = 'RD', df['environment'])
SyntaxError: keyword can't be an expression
что явно не сработало.
Я посмотрел на несколько вопросов, но не смог основываться на предложениях в ответах. вопрос черных вопрос Саймона вопрос szli вопрос Яна Виллемса Тулпа
Итак, как мне заменить значение в столбце на значения других столбцов?