我试图获取数据帧(已分组)中连续值之间的差。当我使用以下代码时,所有第一行的“值”字段都将变为我需要的NAN。我想从差异操作中排除第一行。有人可以帮我吗?
SNo Var % Value
1000 0 1.2
1000 1 2.2
1000 2 3.2
1000 3 4.2
1000 4 5.2
1000 4 6.2
1000 5 7.2
1000 5 8.2
1001 0 0.5
1001 1 1.5
1001 2 2.5
1001 2 3.5
x['value_diff'] = x.groupby('SNo').value.diff()
SNo Var % Value
1000 0 NAN
1000 1 1
1000 2 1
1000 3 1
1000 4 1
1000 4 1
1000 5 1
1000 5 1
1001 0 NAN
1001 1 1
1001 2 1
1001 2 1
答案 0 :(得分:0)
第一行的“值”字段将更改为我需要的NAN。
如评论中所述,您需要:
df.groupby('SNo').Value.diff().fillna(df.Value)
这将在NaN
列的同一索引中填充Value
0 1.2
1 1.0
2 1.0
3 1.0
4 1.0
5 1.0
6 1.0
7 1.0
8 0.5
9 1.0
10 1.0
11 1.0