Выполните расчет на основе столбца Group By, а затем я должен передать это значение в новый столбец в кадре данных - PullRequest
1 голос
/ 22 января 2020

У меня есть следующий фрейм данных:

id  numerator denominator 
1     1          2
1     5          6
1     8          9
2     4          6
3     8          9
3     2          5

1-й групповой, основанный на id

id  numerator denominator
1     14          17
2      4           6
3     10          14

Окончательный расчет для того же df

id  numerator denominator ratio
1     1          2        14/17
1     5          6        14/17
1     8          9        14/17
2     4          6         4/6
3     8          9        10/14
3     2          5        10/14

1 Ответ

3 голосов
/ 22 января 2020

Использование GroupBy.transform:

df['ratio'] = df.groupby('id').transform('sum').eval('numerator/denominator')
print (df)
   id  numerator  denominator     ratio
0   1          1            2  0.823529
1   1          5            6  0.823529
2   1          8            9  0.823529
3   2          4            6  0.666667
4   3          8            9  0.714286
5   3          2            5  0.714286
...