首页 > 解决方案 > python中用于大数据集的公式的功能

问题描述

说,我需要将以下公式转换为 python 并在数据框上使用它。公式如下。

在此处输入图像描述

数据框具有 Xj 和 Bj 的值。数据框如下所示。

 df.head()
type name   OR
1   SAP1    11.21
1   SAP1    1301
2   SAP1    0.7578
2   LUF1    1447
2   LUF1    0.7578
1   ANK3    1150
1   ANK3    0.9909
1   ANK3    1535
1   ACR     0.9909
1   ACR     1535

Xj=type上面的数据框已经从数据框获得了值bj=OR。我需要每个公式中sam^S分数最后,对于每个name,我需要一个S分数。

我已经实现了这样的东西,

   def score(df):
        df_sum   =df[['type','name','OR']].groupby('name').sum().reset_index()
        sum   =df_sum['type']
        OR=df_sum['OR']
        score=sum([sum*OR])
        return score

问题是我需要为每个name值获得单个分数而不是所有重复name值的分数。最后,我只需要 4 行有 4 个分值。

在小型数据集上是可能的。但是,当我给出一个包含多个name值的大数据框ORtype列时。然后我有多个相同的分数name

注意:列中的值type是二进制文件。因此,我不确定我是否在 grouby 中使用它来计算或求和它

标签: pythonpandas

解决方案


我认为如果您更改操作顺序,您可以获得预期的结果:

1 计算 xi*bi

df['xibi'] =df ['type'] * df['OR']

2 groupby 和 sum

res=df.groupby('name')['xibi'].sum()

推荐阅读