У меня есть Pandas DataFrame, подобный следующему:
col1 col2 col3
1 0.2 0.3 0.3
2 0.2 0.3 0.3
3 0 0.4 0.4
4 0 0 0.3
5 0 0 0
6 0.1 0.4 0.4
Я хочу заменить значения col1
значениями во втором столбце (col2
), только если значения col1
равным 0, и после (для оставшихся нулевых значений) сделайте это снова, но с третьим столбцом (col3
). Желаемый результат следующий:
col1 col2 col3
1 0.2 0.3 0.3
2 0.2 0.3 0.3
3 0.4 0.4 0.4
4 0.3 0 0.3
5 0 0 0
6 0.1 0.4 0.4
Я сделал это, используя функцию pd.replace
, но это кажется слишком медленным ... Я думаю, что должен быть более быстрый способ сделать это.
df.col1.replace(0,df.col2,inplace=True)
df.col1.replace(0,df.col3,inplace=True)
Есть ли более быстрый способ сделать это?, Используя какую-то другую функцию вместо функции pd.replace
?