pandas - 转换矩阵不影响Groupby对象的Pandas

  显示原文与译文双语对照的内容

我有以下简单的groupby:


 results_by_lab = results.groupby(lambda x : x.laboratory, 1)
 for k, v in results_by_lab:
 v = v.sum(axis=1)
 for k, v in results_by_lab:
 print k
 print v

sum对groupby对象没有任何影响。

我通过将数据加载到 python 字典中来解决这个问题,但这确实不是正确的方法。

我应该如何在groupby对象中保存转换?

编辑:

我的难点是有时我的转换依赖于标题的值。 上面的代码不演示这一点,但以下操作:


 results_by_lab = results.groupby(lambda x : x.laboratory, 1)
 for k, v in results_by_lab:
 v = v.sum(axis=1)
 v = v.apply(lambda x : adjust_cfm_for_laboratory_parameters(x, k))

可以通过转换( dataframe ( v )的转换依赖它的键) 来完成这种修改?

时间: 原作者:

does"没有效果",因为 v = v.sum(axis=1) 实际上不更新每个组。 它重新定义了变量 v,然后在循环每次迭代时覆盖它。 你的GroupBy 对象 results_by_lab 从未更改过。

幸好 Pandas 让你很容易做你想做的事情。


total_by_lab = results_by_lab.sum()

会给每个组的总和。 如果你愿意,当然可以打印 total_by_lab

通常,如果要使用任意任意函数转换 GroupBy 对象的组,请使用应用。转换或者筛选的方法。 请查看上面Jeff链接的文档以了解这三种方法之间的区别。

原作者:
...