Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于GROUPBY列执行计算,然后我必须将该值传递给dataframe中的新列_Python_Pandas_Dataframe_Pandas Groupby - Fatal编程技术网

Python 基于GROUPBY列执行计算,然后我必须将该值传递给dataframe中的新列

Python 基于GROUPBY列执行计算,然后我必须将该值传递给dataframe中的新列,python,pandas,dataframe,pandas-groupby,Python,Pandas,Dataframe,Pandas Groupby,我有以下数据帧: id numerator denominator 1 1 2 1 5 6 1 8 9 2 4 6 3 8 9 3 2 5 基于id的第一个groupby id numerator denominator 1 14 17 2 4 6 3 10

我有以下数据帧:

id  numerator denominator 
1     1          2
1     5          6
1     8          9
2     4          6
3     8          9
3     2          5
基于id的第一个groupby

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
使用:

使用:


Hi Jezrael,而不是Df1我希望通过使用函数来完成任务,我必须将我的df传递到函数中,我需要在相同的Dataframe中添加列列名提到id、分子、分母或不希望引入另一个Dataframe的概念,我希望所有的操作都在同一个数据帧上完成,请让我知道谢谢…这已经足够了,而且效率更高。谢谢..Oops没有实现op希望保持原始形状,尼斯answrHi Jezrael而不是Df1我希望任务通过使用函数来完成,我必须将我的df传递到一个函数中,我需要在相同的Dataframe中添加列列名被称为id、分子、分母。我不想引入另一个Dataframe的概念,我希望所有的操作都在同一个数据帧上完成,请让我知道谢谢…这已经足够了,而且效率更高。谢谢..Oops没有实现op想要保持原始形状,很好answr
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