Как выполнить поэлементную операцию над двумя наборами столбцов в пандах - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть датафрейм:

 c1 | c2 | c3 | c4
 5  |  4 | 9  | 3

Как я могу выполнить поэлементное деление (или какую-либо другую операцию) между c1 / c2 и c3 / c4

Так что результат будет:

.5555 | 1.33333

Я пробовал:

df[['c1', 'c2']].div(df[['c3', 'c4']], axis='index'))

Но это только что привело к NaNs.

Ответы [ 3 ]

0 голосов
/ 06 ноября 2018

Одним из решений является переход на NumPy и создание нового кадра данных:

res = pd.DataFrame(df[['c1', 'c2']].values / df[['c3', 'c4']].values)

print(res)

          0         1
0  0.555556  1.333333
0 голосов
/ 06 ноября 2018

Довольно просто, просто разделите на значения

df[['c1', 'c2']]/df[['c3','c4']].values

Заказы имеют значение, поэтому убедитесь, что вы используете правильный порядок в знаменателе. Нет необходимости воссоздавать DataFrame

0 голосов
/ 06 ноября 2018

Я не уверен, что правильно понимаю ваш вопрос, но вы можете буквально разделить серию.

df['c1/c2'] = df['c1'] / df['c2']

См. Этот ответ: Как разделить два столбца в кадре данных

РЕДАКТИРОВАТЬ: Хорошо, я понимаю, что ОП спрашивают сейчас .. Пожалуйста, смотрите другой ответ.

...