在 pandas 中每个组的第一个和最后一个位置之前和之后添加行

编程入门 行业动态 更新时间:2024-10-25 10:22:38
本文介绍了在 pandas 中每个组的第一个和最后一个位置之前和之后添加行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个数据框

value id 100 1 200 1 300 1 500 2 600 2 700 3

我想要按id分组,并在每组的第一行之前和最后一行之后添加行,这样我的数据帧看起来就像:我正在添加值 0

i want to group by id and add row before 1st row and after last row of every group such that my dataframe looks: i am adding row with value 0

value id 0 1 100 1 200 1 300 1 0 1 0 2 500 2 600 2 0 2 0 3 700 3 0 3

现在对于每个id组,我想添加序列列,例如:

Now for every group of id, i want to add sequence column such that:

value id sequence 0 1 1 100 1 2 200 1 3 300 1 4 0 1 5 0 2 1 500 2 2 600 2 3 0 2 4 0 3 1 700 3 2 0 3 3

最后一部分很简单,但我正在寻找如何在每组之前和之后添加行?

the last part is easy but i am looking for how to add rows before and after every group?

推荐答案

不是那么容易:

def f(x): x = pd.DataFrame(np.concatenate([np.array([[0, x['id'].iat[0]]]), x.values, np.array([[0, x['id'].iat[0]]])]), columns=x.columns) return (x) df = df.groupby('id').apply(f).reset_index(drop=True) df['seq'] = df.groupby('id').cumcount() + 1 print (df) value id seq 0 0 1 1 1 100 1 2 2 200 1 3 3 300 1 4 4 0 1 5 5 0 2 1 6 500 2 2 7 600 2 3 8 0 2 4 9 0 3 1 10 700 3 2 11 0 3 3

更多推荐

在 pandas 中每个组的第一个和最后一个位置之前和之后添加行

本文发布于:2023-11-26 21:11:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1635208.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:第一个   位置   pandas

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!