Chi*_*and 2 python dataframe pandas pandas-groupby
In [46]: d = np.random.randn(10, 1) * 2
In [47]: df = pd.DataFrame(d.astype(int), columns=['data'])
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一个 cumsum 列,它应该在数据列中的符号更改后重置,如下所示
data custom_cumsum
0 -2 -2
1 -1 -3
2 1 1
3 -3 -3
4 -1 -4
5 2 2
6 0 2
7 3 5
8 -1 -1
9 -2 -3
Run Code Online (Sandbox Code Playgroud)
我能够通过 实现这一点df.iterrows()
。我试图避免迭代并通过向量运算来实现。当存在 NaN 时,有几个关于重置 cumsum的问题。我无法通过这些解决方案实现这个目标。
创建新密钥,然后在每个组中groupby
执行cumsum
新键创建:通过使用符号change,如果change我们添加一个那么它将属于nest组
df.groupby(df.data.lt(0).astype(int).diff().ne(0).cumsum()).data.cumsum()
Out[798]:
0 -2
1 -3
2 1
3 -3
4 -4
5 2
6 2
7 5
8 -1
9 -3
Name: data, dtype: int64
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1561 次 |
最近记录: |