【发布时间】:2020-12-12 15:22:39
【问题描述】:
我需要找到一个子集的一个子集,并且我需要迭代地进行,然后在该子集的每个实例中计算一个值,然后将其保存在一个新的输出表中。
为了更好地解释,我有一个类似于下图所示的数据框;
我需要遍历数据集,并对团队 A(第 2 组)的所有第 1 人(第 1 组)的成本求和。
然后移动到团队 B 中的第 1 个人并做同样的事情,依此类推,直到第 1 个人完成。
然后转到第 2 个人,再次对所有团队执行相同操作。
以下示例:
我的理解是使用嵌套循环,例如:
for Person in Group1:
for Team in Group 2:
Newcost=sum(cost)
output.append(Person, Team, Newcost)
但是,我尤其是 Python 和 pandas 的新手,我发现很难使用我通常使用的相同方法,因为有数据框设置和不同的语法。
我已经阅读了关于使用 .groupby 和 .loc 来缩小我的数据框并根据我的条件进行分组的信息,但是我需要同时使用两个条件迭代地进行操作,然后最终计算出我的值和我我不确定这会如何工作。
任何建议都会非常感谢!
【问题讨论】:
-
您不需要任何嵌套循环。 Pandas 提供了很多工具以更简单的方式完成此操作。试试
df.groupby(by=['Group1', 'Group2'], axis=0).sum()之类的东西,其中df是您的数据框的名称。
标签: python pandas dataframe loops subset