Скажите, что у меня есть следующий кадр данных Pandas
import numpy as np
import pandas as pd
такой, что у меня есть следующий кадр данных
+----+-----------+----------+----------+----------+
| | a | b | c | d |
|----+-----------+----------+----------+----------|
| 0 | 0.462955 | 0.605148 | 0.481413 | 0.848894 |
| 1 | 0.341476 | 0.611664 | 0.419806 | 0.6367 |
| 2 | 0.0773736 | 0.795014 | 0.635595 | 0.154184 |
+----+-----------+----------+----------+----------+
Скажите, что я хочу изменить столбец d
так, чтобы d = a * b / c
. Я могу использовать groupby
и apply
, чтобы получить следующее
df.groupby(['a','b','c']).apply(lambda x: x['a'] * x['b'] / x['c'])
a b c
0.077374 0.795014 0.635595 2 0.096780
0.341476 0.611664 0.419806 1 0.497535
0.462955 0.605148 0.481413 0 0.581946
dtype: float64
, что в некоторой степени то, что я ищу, поскольку оно содержит желаемые значения, но все еще далеко от желаемого результата.
Вы можете мне помочь?
РЕДАКТИРОВАТЬ: метод должен быть работоспособным также в случае, когда у меня очень большая фильтрация.