У меня фрейм данных выглядит следующим образом:
import numpy as np
import pandas as pd
d = {'col1': [np.nan, 19, 32, np.nan, 54, 67], 'col2': [0, 1, 0, 1, 1, 1]}
df = pd.DataFrame(d)
Я хочу заполнить отсутствующие значения в «col1» на основе значений «col2». Для уточнения c: я хочу заполнить отсутствующие значения в «col1» значением 0, если «col2» равно 0, иначе оставьте «col1» как есть. В этом случае мой результат должен выглядеть так:
d_updated = {'col1': [0, 19, 32, np.nan, 54, 67], 'col2': [0, 1, 0, 1, 1, 1]}
df_updated = pd.DataFrame(d_updated)
Чтобы получить вышеуказанный результат, я пытаюсь получить индекс, у которого «col2» имеет значения, равные 0, и использую fillna ():
ix = list(df[df["col2"] == 0].index)
df["col2"].loc[ix].fillna(0, inplace = True)
Однако мой подход не работает, и я не знаю почему. Спасибо заранее.