熊猫数据框基于键减少/添加行

迈克尔·拉祖姆

我在某种简单的问题上苦苦挣扎。希望有一个简单的解决方案。我的数据框看起来像这样。

DataFrame:
8 buy  4
7 sell 1
6 buy  1
5 sell 3
4 sell 10  
3 buy  100
2 buy  110
1 buy  120

有没有办法添加相继出现的相同订单?因此,将df转换为:

DataFrame:
8 buy  4
7 sell 1
6 buy  1
4 sell 3 + 10 
1 buy  100 + 110 + 120

我的问题有点复杂。我认为可以通过迭代来解决,但希望有一个更简单的解决方案。

BEN_YO

使用agggroupby

df.groupby((df.b!=df.b.shift()).ne(0).cumsum()).agg({'a':'last','c':lambda x : '+'.join(x.astype(str)),'b':'first'})
Out[1227]: 
   a            c     b
b                      
1  8            4   buy
2  7            1  sell
3  6            1   buy
4  4         3+10  sell
5  1  100+110+120   buy

数据输入 :

df
Out[1228]: 
   a     b    c
0  8   buy    4
1  7  sell    1
2  6   buy    1
3  5  sell    3
4  4  sell   10
5  3   buy  100
6  2   buy  110
7  1   buy  120

更多信息 :

(df.b!=df.b.shift()).ne(0).cumsum()
Out[1229]: 
0    1
1    2
2    3
3    4
4    4
5    5
6    5
7    5
Name: b, dtype: int32

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章