Эффективно заменить значения из столбца в другой столбец Pandas DataFrame

У меня есть 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?

9
задан Pablo 23 November 2017 в 14:32
поделиться