【问题标题】:iterating over multindex - a groupby.value_counts() object is only through values and not through original date index遍历多索引 - groupby.value_counts() 对象仅通过值而不是通过原始日期索引
【发布时间】:2019-06-16 13:57:42
【问题描述】:

我想知道在我定义为过度拥挤的日子里,急诊室(急诊室)中男性的百分比。

我有一个名为 eda 的 DF,其中的行代表 ER 的每个条目。某列说明输入是否发生在过于拥挤的日子(1 表示过于拥挤),并且某一列说明进入的人的性别。

到目前为止,我设法获得了一系列过度拥挤的日子作为索引和一个代表性别和该性别条目数量的子索引。

我使用了这个代码:

eda[eda.over_crowd==1].groupby(eda[eda.over_crowd==1].index.date).gender.value_counts()

得到以下结果:

我的问题是,一般来说,获得男性\女性百分比的最“熊猫人”方式是什么。或者,如何从我停止的地方继续?

如屏幕截图底部所示,当我遍历元素时,每个值都是连续的女性男性。我想迭代日期,这样我就可以以某种方式编写一个更干净的循环,该循环将产生另一列男性百分比。

【问题讨论】:

    标签: loops indexing group-by multi-index


    【解决方案1】:

    我找到了一个非常优雅的解决方案。我敢肯定还有更多,但也许它可以帮助其他人。

    所以我定义了一个包含所有日期和女性和男性人数的多索引系列。然后使用 .loc 对所有日期的每个计数进行操作,以获取每天男性的百分比。最后我只提取申请 over_crowd==1 的天数。

    temp=eda.groupby(eda.index.date).gender.value_counts()
    crowding['male_percent']=np.divide(100*temp.loc[:,1],temp.loc[:,2]+temp.loc[:,1])
    crowding.male_percent[crowding.over_crowd==1]
    

    【讨论】:

      猜你喜欢
      • 2016-08-10
      • 1970-01-01
      • 2018-05-23
      • 2013-04-16
      • 1970-01-01
      • 2017-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多