如何在多索引DataFrame中按级别总计除列中的所有值

米尔科

我有这个多索引数据框。FG 是我创建的 4 个组。
我需要以百分比更改生物量(又名 BIOMc)。
为此,我必须除以每个组内的生物量总和。我不知道如何在多索引 DataFrame 中做到这一点。

我知道如何获得单个组的结果,例如:

workdf.loc['RSH'] / workdf.loc['RSH'].sum()

但我不知道如何重申(没有实际迭代,因为我认为这里没有必要)所有组的过程,也没有专门写下 FG 的名称。

import pandas as pd

workdf = pd.DataFrame({
    'FG': ['RSH', 'RSH', 'RSH', 'RSS', 'RSS', 'SSH', 'SSH', 'SSS', 'SSS', 'SSS'],
    'Diet': ['A', 'B', 'C', 'A', 'C', 'B', 'C', 'A', 'B', 'C'],
    'BIOMc': [3, 0, 21, 0, 2, 0, 11, 0, 1, 3]
}).set_index(['FG', 'Diet'])


          BIOMc
FG  Diet       
RSH A         3
    B         0
    C        21
RSS A         0
    C         2
SSH B         0
    C        11
SSS A         0
    B         1
    C         3
莫兹韦

使用groupby+ transform

df['BIOMc']/df.groupby(level='FG')['BIOMc'].transform('sum')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在熊猫多索引的所有级别中替换NaN值

熊猫如何在Multiindex DataFrame中获取对索引级别具有多个值的行的列表

如何在不使用 .drop 命令中的所有級別的情況下從多索引 Dataframe 中刪除數據?

如何在具有不同索引级别的熊猫中合并多索引?

如何在熊猫多索引数据框中绘制所有命名的列?

在熊猫多索引中按级别迭代

在 Apache Spark DataFrame 中,如何刪除所有非 None 值都相同的所有列?

按除熊猫中的一个索引列以外的所有内容分组

如何在多索引数据框中删除空级别

如何在特定级别的多索引列中添加前缀?

如何在elasticsearch中对除部分索引之外的所有索引进行搜索查询

如果被视为索引的列中的值出现多次,如何从保留所有值的 DataFrame 中获取字典?

如何使用 Pandas 在多索引列中创建具有不同级别数的数据框?

如何在pandas DataFrame中设置给定索引级别的值

如何在Django admin中总计所有价格的总和

Pyspark DataFrame如何在所有列中删除带有空值的行?

如何在PySpark DataFrame中删除具有空值的所有列?

重新编码pandas dataframe列中除一个值外的所有值

索引中多列按值多样性的顺序

如何按列过滤具有多个级别的多索引数据框?

如何为一个多索引级别的所有缺失值添加行?

在 Pandas 中,如何删除所有子行,但保留多索引数据框中特定列中具有最高值的子行?

如何解析DataFrame列中的所有值?

如何替换不在另一列值中的多列中的所有值

Pandas Dataframe Mutli索引按级别和列值排序

如何在熊猫多索引中按小时分组

如何在 Excel 中使用 VBA 按列标题名称查看列中的所有单元格值

如何在所有级别的键中更改对象的值?

如何在 PostgreSQL 中刪除具有特定值的所有 JSON 屬性