如何找到groupby列结果的比率

时间:2018-07-31 15:33:18

标签: python pandas

我想从导入的excel数据中找出服务器相对于环境的比率。

我用熊猫来导入excel

Data=pd.read_excel(r"...\Report.xlsx")

我已经针对环境(“ ENV”)和服务器名称使用了groupby,并使用reset_index命名了结果列

result=Data.groupby(["ENV"])["SRVR_NM"].count().reset_index(name='Server_count')

我正在使用上面的代码跟踪结果

   ENV                 Server_count
     DR                 1924
     Development         4808
     Integration         687
     Lab                 185
     Production          7619
     QA                 2284

现在我想找到每种环境下服务器的比例。

例如,第一列1/1924 = 0.051975,1 / 4808 = 0.020799等。

如何找到上述结果的比例并显示类似结果

       ENV          Server_count     Ratio
      DR             1924             0.051975
      Development    4808             0.020799
      Integration    687                .
      Lab            185                .
      Production     7619               .
      QA             2284               .

2 个答案:

答案 0 :(得分:0)

如果您想要的是Server_count列的倒数乘以100:

result["Ratio"] = (1 / result["Server_count"]) * 100

答案 1 :(得分:0)

我认为您想要的输出是错误的,似乎您想要每个ENV与总数的比率。为此,您可以将 value_counts normalize=True 一起使用:

options = ['DR', 'Development', 'Integration', 'Lab', 'Production', 'QA']
df = pd.DataFrame([random.choice(options) for _ in range(10000)], columns=['ENV'])

使用 value_counts

df.ENV.value_counts(normalize=True)

QA             0.1732
Production     0.1677
Development    0.1677
Lab            0.1644
DR             0.1638
Integration    0.1632
Name: ENV, dtype: float64