gpt4 book ai didi

python - 对多列进行转换以插入/复制缺失值

转载 作者:太空宇宙 更新时间:2023-11-03 10:50:57 25 4
gpt4 key购买 nike

我试图通过插入或复制组内的最后一个已知值(由 trip 标识)来填充 pandas 数据框中的缺失值。我的数据如下所示:

    brake   speed   trip
0 0.0 NaN 1
1 1.0 NaN 1
2 NaN 1.264 1
3 NaN 0.000 1
4 0.0 NaN 1
5 NaN 1.264 1
6 NaN 6.704 1
7 1.0 NaN 1
8 0.0 NaN 1
9 NaN 11.746 2
10 1.0 NaN 2
11 0.0 NaN 2
12 NaN 16.961 3
13 1.0 NaN 3
14 NaN 11.832 3
15 0.0 NaN 3
16 NaN 17.082 3
17 NaN 22.435 3
18 NaN 28.707 3
19 NaN 34.216 3

我找到了 Pandas interpolate within a groupby但我需要 brake 简单地从最后已知的 speed 中复制(我的实际数据集有 12 列,每列都需要这样处理)

最佳答案

您可以对每一列应用不同的方法。例如:

# interpolate speed
df['speed'] = df.groupby('trip').speed.transform(lambda x: x.interpolate())
# fill brake with last known value
df['brake'] = df.groupby('trip').brake.transform(lambda x: x.fillna(method='ffill'))

>>> df
brake speed trip
0 0.0 NaN 1
1 1.0 NaN 1
2 1.0 1.2640 1
3 1.0 0.0000 1
4 0.0 0.6320 1
5 0.0 1.2640 1
6 0.0 6.7040 1
7 1.0 6.7040 1
8 0.0 6.7040 1
9 NaN 11.7460 2
10 1.0 11.7460 2
11 0.0 11.7460 2
12 NaN 16.9610 3
13 1.0 14.3965 3
14 1.0 11.8320 3
15 0.0 14.4570 3
16 0.0 17.0820 3
17 0.0 22.4350 3
18 0.0 28.7070 3
19 0.0 34.2160 3

请注意,这意味着您在制动器中保留了一些 NaN,因为行程的第一行没有“最后已知值”,并且一些 NaN 在前几行为 NaN 时的速度。您可以将这些替换为您认为合适的 fillna()

关于python - 对多列进行转换以插入/复制缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50320776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com