Shu*_*m R 5 python dataframe pandas
我有一个数据框
value id
100 1
200 1
300 1
500 2
600 2
700 3
Run Code Online (Sandbox Code Playgroud)
我想按 id 分组并在每个组的第一行之前和最后一行之后添加行,以便我的数据框看起来:我正在添加带有值的行 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
Run Code Online (Sandbox Code Playgroud)
现在对于每组 id,我想添加序列列,以便:
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
Run Code Online (Sandbox Code Playgroud)
最后一部分很简单,但我正在寻找如何在每个组之前和之后添加行?
没那么容易:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
746 次 |
| 最近记录: |