python - Pandas groupby : *full* join result of groupwise operation on original index

标签 python pandas join pandas-groupby

考虑这个df:

import pandas as pd, numpy as np

df = pd.DataFrame.from_dict({'id': ['A', 'B', 'A', 'C', 'D', 'B', 'C'],
                            'val': [1,2,-3,1,5,6,-2], 
                            'stuff':['12','23232','13','1234','3235','3236','732323']})

问题:如何生成一个表,其中的列数与 unique id ({A, B, C}) 和 与 df 一样多的行,例如对于对应于 id==A 的列,值为:

1,
np.nan,
-2,
np.nan,
np.nan,
np.nan,
np.nan

(这是 df.groupby('id')['val'].cumsum() 加入 df 索引的结果)。

最佳答案

UMMM 枢轴

pd.pivot(df.index,df.id,df.val).cumsum()
Out[33]: 
id    A    B    C    D
0   1.0  NaN  NaN  NaN
1   NaN  2.0  NaN  NaN
2  -2.0  NaN  NaN  NaN
3   NaN  NaN  1.0  NaN
4   NaN  NaN  NaN  5.0
5   NaN  8.0  NaN  NaN
6   NaN  NaN -1.0  NaN

关于python - Pandas groupby : *full* join result of groupwise operation on original index,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52132377/

相关文章:

python - 如何用列表附加 Pandas 数据框?

Python:正确构造、写入和读取 MultiIndex pd 到 csv

c# - Linq 加入 3 列表 <T>

python - 尝试在非包中进行相对导入(2to3 之后)

Python 2.7 Argparse 是或否输入

Python Django 1.7 Ubuntu 14.04 如何在 azure 上部署 django 站点?

python - 从 Numpy 数组中选择每列满足某些条件的所有行

python - pandas - 检查数据框 groupby 中的非唯一值

mysql - 连接中的子选择 - 问题

SQL 唯一值