#python #pandas
#python #pandas
Вопрос:
У меня есть фрейм данных, который выглядит следующим образом
pd.DataFrame({'A': [5, 2, -3],
...: 'B': [9, -1, 7],
...: 'C': [-5, 2, -6]})
Out[28]:
A B C
0 5 9 -5
1 2 -1 2
2 -3 7 -6
Я хотел бы сделать следующее
x > 0 -> (1 x)
x < 0 -> (1-x)^-1 (в степени -1)
а затем суммировать все столбцы.
результирующий фрейм данных должен выглядеть следующим образом
A B C D Logic
0 5 9 -5 16.1667 (1 5) (1 9) ((1-(-5))^-1)
1 2 -1 2 6.5 (1 2) ((1-(-1))^-1) (1 2)
2 -3 7 -6 8.3929 ((1-(-3)^-1) (1 7) ((1-(-6))^-1)
Ответ №1:
Здесь вы идете с np.where
:
df['D'] = np.where(df>0, 1 df, 1/(1-df)).sum(1)
Вывод:
A B C D
0 5 9 -5 16.166667
1 2 -1 2 6.500000
2 -3 7 -6 8.392857