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