【发布时间】:2017-01-18 04:08:58
【问题描述】:
我可以将一列插入到数据框中,像这样对另一列进行 z 评分:
[1] df.insert(<loc>, column='ZofA', value=(df['A']-df['A'].mean())/df['A'].std())
我可以像这样对按其他 2 列分组的列进行简单的缩减:
[2] df.groupby(['C1', 'C2'])['A'].mean()
我尝试将 [2] 中的简单 mean() 函数替换为 [1] 中的 zscore 函数,但不知道该怎么做,包括使用 .apply ——例如这失败了:
[3] df.groupby(['C1', 'C2']).apply((df['A']-df['A'].mean())/df['A'].std())
所以我的第一个问题是我显然不知道如何创建带有分组的 zscore 列。
我的第二个问题是我想将 (1) 将新列插入到保存另一列 ('A') 的 z 分数的数据框 ('ZofA') 中,以及 (2) 计算这些 z 分数在由另外两个列('C1','C2')定义的组内。 (3) 我想在一个 df.insert() 语句中完成所有这些工作。我只是弄乱了括号和括号之类的东西,还是我试图在一个陈述中做太多事情?谢谢!
【问题讨论】:
-
按本书去做:pandas.pydata.org/pandas-docs/stable/groupby.html 你在文档中有确切的例子
-
如果解决了您的问题,请将其作为答案发布并标记为正确。
标签: python-2.7 pandas dataframe