То, чего я хочу добиться, это:
a b c
0 1 0 0
1 -1 0 0
с указанным выше кадром данных, относительно столбца a
, для положительных строк, присваивать соответствующие строки в столбце b
, для отрицательных значений,присвоить столбцу c
:
a b c
0 1 1 0
1 -1 0 -1
Я сейчас использую следующий код, но есть ли способ, которым я могу написать его в одну строку вместо двух?
import pandas as pd
import numpy as np
df = pd.DataFrame({'a': [1, -1], 'b':[0, 0], 'c':[0,0]})
df.b = np.where(df.a > 0, df.a, df.b)
df.c = np.where(df.a < 0, df.a, df.c)