gpt4 book ai didi

python - 根据时间序列数据帧的时间列更正日期列中的条目

转载 作者:行者123 更新时间:2023-12-03 20:23:02 25 4
gpt4 key购买 nike

我有一个包含三列的时间序列数据框......日期、时间和值,它看起来像这样:

**date**              **time**            **value**
11.03.2020 1103 5
11.03.2020 0000 10
11.03.2020 0100 6
12.03.2020 0201 8
12.03.2020 0305 7
12.03.2020 0400 4
基本上时间列每行增加 60 (+-5) 分钟。我想以这样的方式更正我的日期列值,当时间为 0000 (+-5) 时,日期列的日期部分增加 1,直到遇到下一个 0000 (+-5) 时间值,然后它增加再次减 1,直到遇到下一个这样的时间值或到达数据帧的末尾。
结果应如下所示:
**date**              **time**            **value**
11.03.2020 1103 5
12.03.2020 0000 10
12.03.2020 0100 6
12.03.2020 0201 8
12.03.2020 0305 7
12.03.2020 0400 4
我会很感激一些帮助。谢谢

最佳答案

解析列 date 中的字符串如 datetime

df['date'] = pd.to_datetime(df['date'], dayfirst=True)
创建一个 bool 掩码 m通过比较 time列与 0000 , 使用 bool 索引添加 DateOffset1 days到 bool 掩码为真的日期列中的值,然后 maskforward fill当前日期小于前一个日期的更新日期列中的值
m = df['time'].eq('0000')
df.loc[m, 'date'] += pd.DateOffset(days=1)
df['date'] = df['date'].mask(df['date'].diff().dt.days.lt(0)).ffill()
        date  time  value
0 2020-03-11 1103 5
1 2020-03-12 0000 10
2 2020-03-12 0100 6
3 2020-03-12 0201 8
4 2020-03-12 0305 7
5 2020-03-12 0400 4

关于python - 根据时间序列数据帧的时间列更正日期列中的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67329174/

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