我有一个熊猫数据帧
ACCOUNT AMOUNT STATUS
1 -2 1
2 2 0
2 -1 0
1 2 1
1 2 1
这是想转换成一个像
^{pr2}$因此,如果AMOUNT>;或<;大于0,则基本上进行拆分,然后对结果进行计数和求和。我目前有以下,但无法得到正确的分割金额。在
Data = pd.pivot_table(trans, values =['Status', 'AMOUNT'], index = ['ACCOUNT'], aggfunc = {'Status':np.mean, 'AMOUNT': [np.sum, 'count'] } )
使用
groupby
和unstack
可以更好地实现这一点。我还创建了一些额外的专栏,使事情更清楚。在你得到了你的桌子:
^{pr2}$使用
np.sign
此函数根据值的符号返回
-1
/0
/1
的数组。本质上给了我一种方便的方法来识别小于、等于或大于零的事物。我在groupby语句中使用它,并使用agg
来计算值的数目,求和得到总数。在按3个向量分组之后,我将得到一个3层多索引。我取消堆叠是为了获取最后一层,并将其旋转到列中。最后一层是sign
层。在额外努力模拟OP的预期输出:
^{pr2}$在这里,我也做同样的事情。但是我添加了几个步骤来重命名列、合并层并获取绝对值。在
这是尝试修复您的pivot_表
相关问题 更多 >
编程相关推荐