gpt4 book ai didi

python - Pandas:在时间序列中每天查找第一次出现的情况

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

我正在努力解决这个问题,所以任何意见都会受到赞赏。我想迭代数据帧列中的值,并在每天看到值时返回第一个实例。 Groupby 看起来是一个不错的选择,但是当使用 df.groupby(grouper).first() 并每天设置 grouper 时,会看到以下输出。

In [95]:
df.groupby(grouper).first()

Out[95]:
test_1
2014-03-04 1.0
2014-03-05 1.0

这仅给出了在测试_1中看到该值的日期,而不是每天重置first(),这正是我所需要的(请参阅下面的所需输出)。

我想以以下格式保留该值出现的时间:

这是输入数据框:

                  test_1
2014-03-04 09:00:00 NaN
2014-03-04 10:00:00 NaN
2014-03-04 11:00:00 NaN
2014-03-04 12:00:00 NaN
2014-03-04 13:00:00 NaN
2014-03-04 14:00:00 1.0
2014-03-04 15:00:00 NaN
2014-03-04 16:00:00 1.0
2014-03-05 09:00:00 1.0

这是所需的输出:

                 test_1  test_output
2014-03-04 09:00:00 NaN NaN
2014-03-04 10:00:00 NaN NaN
2014-03-04 11:00:00 NaN NaN
2014-03-04 12:00:00 NaN NaN
2014-03-04 13:00:00 NaN NaN
2014-03-04 14:00:00 1.0 1.0
2014-03-04 15:00:00 NaN NaN
2014-03-04 16:00:00 1.0 NaN
2014-03-05 09:00:00 1.0 NaN

我只想在名为 test_output 的新列中标记事件首次发生的时间。

管理员。请注意,此问题与标记为重复的其他问题不同,因为这需要滚动一天首次出现。

最佳答案

尝试一下,使用以下数据:

rng = pd.DataFrame( {'test_1': [None, None,None, None, 1,1, 1 , None, None, None,1 , None, None, None,]},  index = pd.date_range('4/2/2014', periods=14, freq='BH'))
rng

test_1
2014-04-02 09:00:00 NaN
2014-04-02 10:00:00 NaN
2014-04-02 11:00:00 NaN
2014-04-02 12:00:00 NaN
2014-04-02 13:00:00 1.0
2014-04-02 14:00:00 1.0
2014-04-02 15:00:00 1.0
2014-04-02 16:00:00 NaN
2014-04-03 09:00:00 NaN
2014-04-03 10:00:00 NaN
2014-04-03 11:00:00 1.0
2014-04-03 12:00:00 NaN
2014-04-03 13:00:00 NaN
2014-04-03 14:00:00 NaN

输出是这样的:

rng['test_output'] = rng['test_1'].loc[rng.groupby(pd.TimeGrouper(freq='D'))['test_1'].idxmin()]

test_1 test_output
2014-04-02 09:00:00 NaN NaN
2014-04-02 10:00:00 NaN NaN
2014-04-02 11:00:00 NaN NaN
2014-04-02 12:00:00 NaN NaN
2014-04-02 13:00:00 1.0 1.0
2014-04-02 14:00:00 1.0 NaN
2014-04-02 15:00:00 1.0 NaN
2014-04-02 16:00:00 NaN NaN
2014-04-03 09:00:00 NaN NaN
2014-04-03 10:00:00 NaN NaN
2014-04-03 11:00:00 1.0 1.0
2014-04-03 12:00:00 NaN NaN
2014-04-03 13:00:00 NaN NaN
2014-04-03 14:00:00 NaN NaN

关于python - Pandas:在时间序列中每天查找第一次出现的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38190472/

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