首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >简化pandas中的求和计算(sigma符号)

简化pandas中的求和计算(sigma符号)
EN

Stack Overflow用户
提问于 2018-06-07 22:30:53
回答 1查看 325关注 0票数 0

我需要计算每组的百分比(从A到G),并使用六个不同的列除以相同的一列(如G表示总数)。然后我需要计算一个叫做HHI的东西。我的等式在sigma符号前面有一个"1-“。因此,我需要将这些列平方,然后将它们相加,然后使用1减去加法。我需要将这些百分比列保留在我的数据框中。请帮我简化一下以下代码:

代码语言:javascript
复制
  df = pd.DataFrame(np.random.randn(20, 7), columns=list("ABCDEFG"))

  #percentage
        df["pct_A"] = df_race.A / df_race.G
        df["pct_B"] = df_race.B / df_race.G
        df["pct_C"] = df_race.C / df_race.G
        df["pct_D"] = df_race.D / df_race.G
        df["pct_E"] = df_race.E / df_race.G
        df["pct_F"] = df_race.F / df_race.G

    #HHI Index
        df["hhi"] = 1-(df.pct_A**2 + df.pct_B**2 + df.pct_C**2 + 
                       df.pct_D**2 + df.pct_E**2 + df.pct_F**2)
EN

回答 1

Stack Overflow用户

发布于 2018-06-11 08:24:56

代码语言:javascript
复制
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(20, 7), columns=list("ABCDEFG"))

我通常使用的是(我的数据集包含缺少的值):

代码语言:javascript
复制
df.iloc[:, 0:6] = df.iloc[:, 0:6].apply(lambda x: x/df.G)
df["hhi"] = 1 - df.iloc[:, 0:6].apply(lambda x: x**2).sum(skipna=False, axis=1)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50743855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档