我正在尝试获取数据框中连续值之间的差异(我已经分组了(。当我使用以下代码时,所有第一行"值"字段都更改为我需要的 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
第一行"值"字段正在更改为我需要的 NAN 字段。
如评论中所述,您需要:
df.groupby('SNo').Value.diff().fillna(df.Value)
这将填充Value
列中同一索引中的NaN
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