填充锚点之间的缺失值
Fill missing values between between anchor points
我有一个数据框,其中有一列指示几场比赛的第一分钟和第 45 分钟。中间的时间戳丢失了。我想用相应的时间戳填充这些缺失值。数据框看起来像这样
Group Index MatchMin
0 0 nan
0 1 nan
0 2 1
0 3 nan
0 4 nan
0 5 nan
...
0 48 45
0 49 nan
0 50 nan
1 0 nan
1 1 nan
1 2 1
1 3 nan
1 4 nan
1 5 nan
...
1 48 45
1 49 nan
1 50 nan
...
所需的输出应该是:
Group Index MatchMin
0 0 nan
0 1 nan
0 2 1
0 3 2
0 4 3
0 4 4
...
0 48 45
0 49 nan
0 50 nan
1 0 nan
1 1 nan
1 2 1
1 3 2
1 4 3
1 5 4
...
1 48 45
1 49 nan
1 50 nan
...
有谁知道如何解决这个问题?
亲切的问候
如果应该通过对每个组进行插值来简化解决方案,但只能在第一个和最后一个非错误值之间使用 GroupBy.transform
with Series.interpolate
:
f = lambda x: x.interpolate(limit_area='inside')
df['MatchMin'] = df.groupby('Group')['MatchMin'].transform(f)
我有一个数据框,其中有一列指示几场比赛的第一分钟和第 45 分钟。中间的时间戳丢失了。我想用相应的时间戳填充这些缺失值。数据框看起来像这样
Group Index MatchMin
0 0 nan
0 1 nan
0 2 1
0 3 nan
0 4 nan
0 5 nan
...
0 48 45
0 49 nan
0 50 nan
1 0 nan
1 1 nan
1 2 1
1 3 nan
1 4 nan
1 5 nan
...
1 48 45
1 49 nan
1 50 nan
...
所需的输出应该是:
Group Index MatchMin
0 0 nan
0 1 nan
0 2 1
0 3 2
0 4 3
0 4 4
...
0 48 45
0 49 nan
0 50 nan
1 0 nan
1 1 nan
1 2 1
1 3 2
1 4 3
1 5 4
...
1 48 45
1 49 nan
1 50 nan
...
有谁知道如何解决这个问题?
亲切的问候
如果应该通过对每个组进行插值来简化解决方案,但只能在第一个和最后一个非错误值之间使用 GroupBy.transform
with Series.interpolate
:
f = lambda x: x.interpolate(limit_area='inside')
df['MatchMin'] = df.groupby('Group')['MatchMin'].transform(f)