gpt4 book ai didi

python - Pandas Dataframe 添加缺少的时间戳行,然后向前填充以前的值

转载 作者:太空宇宙 更新时间:2023-11-04 08:29:26 24 4
gpt4 key购买 nike

我有一个 Pandas 数据框如下:

Timestamp                    Player Rotated Lat Rotated Lon
2018-11-11 16:22:21.999993600 G -15.89769 84.714795
2018-11-11 16:22:21.999993600 W -15.897637 84.714784
2018-11-11 16:22:21.999993600 K -15.897617 84.714621
2018-11-11 16:22:21.999993600 Y -15.897638 84.714787
2018-11-11 16:22:22.099958400 K -15.897618 84.714623
2018-11-11 16:22:22.099958400 Y -15.897691 84.714796
2018-11-11 16:22:22.099958400 W -15.897619 84.714626
2018-11-11 16:22:22.200009600 Y -15.897693 84.714794
2018-11-11 16:22:22.200009600 G -15.897639 84.714788
2018-11-11 16:22:22.200009600 K -15.897693 84.714802
2018-11-11 16:22:22.299974400 W -15.897692 84.714796
2018-11-11 16:22:22.299974400 G -15.897622 84.714629
2018-11-11 16:22:22.299974400 Y -15.897639 84.714791
2018-11-11 16:22:22.299974400 K -15.897694 84.714799
2018-11-11 16:22:22.400025600 G -15.89764 84.714794
2018-11-11 16:22:22.400025600 K -15.897622 84.714632
2018-11-11 16:22:22.400025600 Y -15.897692 84.714804
2018-11-11 16:22:22.400025600 W -15.897623 84.714635
2018-11-11 16:22:22.499990400 Y -15.897692 84.714806
2018-11-11 16:22:22.499990400 W -15.897694 84.714802
2018-11-11 16:22:22.499990400 G -15.897641 84.714795
2018-11-11 16:22:22.499990400 K -15.897694 84.714808

如果你注意到,我有 4 个玩家:G、W、K、Y。因此每个时间戳索引应该有 4 个。但是,缺少一些时间戳。我如何添加所有缺失的时间戳,然后前向填充其他值以仅获取那些不在给定时间戳中的玩家?

例如,对于时间戳 2018-11-11 16:22:22.099958400,玩家 G 缺失。我怎样才能只填充那个玩家?

期望的输出(我将框架隔开以使其更具可读性):

Timestamp                    Player Rotated Lat Rotated Lon
2018-11-11 16:22:21.999993600 G -15.89769 84.714795
2018-11-11 16:22:21.999993600 W -15.897637 84.714784
2018-11-11 16:22:21.999993600 K -15.897617 84.714621
2018-11-11 16:22:21.999993600 Y -15.897638 84.714787

2018-11-11 16:22:22.099958400 K -15.897618 84.714623
2018-11-11 16:22:22.099958400 Y -15.897691 84.714796
2018-11-11 16:22:22.099958400 W -15.897619 84.714626
2018-11-11 16:22:22.099958400 G -15.89769 84.714795

2018-11-11 16:22:22.200009600 Y -15.897693 84.714794
2018-11-11 16:22:22.200009600 G -15.897639 84.714788
2018-11-11 16:22:22.200009600 K -15.897693 84.714802
2018-11-11 16:22:22.200009600 W -15.897619 84.714626

最佳答案

使用set_indexunstack对于 reshape ,前向填充缺失值并最后 reshape stack :

df = df.set_index('Player', append=True).unstack().ffill().stack().reset_index(level=1)
print (df)
Player Rotated Lat Rotated Lon
Timestamp
2018-11-11 16:22:21.999993600 G -15.897690 84.714795
2018-11-11 16:22:21.999993600 K -15.897617 84.714621
2018-11-11 16:22:21.999993600 W -15.897637 84.714784
2018-11-11 16:22:21.999993600 Y -15.897638 84.714787
2018-11-11 16:22:22.099958400 G -15.897690 84.714795
2018-11-11 16:22:22.099958400 K -15.897618 84.714623
2018-11-11 16:22:22.099958400 W -15.897619 84.714626
2018-11-11 16:22:22.099958400 Y -15.897691 84.714796
2018-11-11 16:22:22.200009600 G -15.897639 84.714788
2018-11-11 16:22:22.200009600 K -15.897693 84.714802
2018-11-11 16:22:22.200009600 W -15.897619 84.714626
2018-11-11 16:22:22.200009600 Y -15.897693 84.714794
2018-11-11 16:22:22.299974400 G -15.897622 84.714629
2018-11-11 16:22:22.299974400 K -15.897694 84.714799
2018-11-11 16:22:22.299974400 W -15.897692 84.714796
2018-11-11 16:22:22.299974400 Y -15.897639 84.714791
2018-11-11 16:22:22.400025600 G -15.897640 84.714794
2018-11-11 16:22:22.400025600 K -15.897622 84.714632
2018-11-11 16:22:22.400025600 W -15.897623 84.714635
2018-11-11 16:22:22.400025600 Y -15.897692 84.714804
2018-11-11 16:22:22.499990400 G -15.897641 84.714795
2018-11-11 16:22:22.499990400 K -15.897694 84.714808
2018-11-11 16:22:22.499990400 W -15.897694 84.714802
2018-11-11 16:22:22.499990400 Y -15.897692 84.714806

关于python - Pandas Dataframe 添加缺少的时间戳行,然后向前填充以前的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54141871/

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