gpt4 book ai didi

python - 如何填写列中的第一个日期?

转载 作者:行者123 更新时间:2023-12-02 04:41:15 24 4
gpt4 key购买 nike

我有一个df:

dates   values
2020-01-01 00:15:00 38.61487
2020-01-01 00:30:00 36.905204
2020-01-01 00:45:00 35.136584
2020-01-01 01:00:00 33.60378
2020-01-01 01:15:00 32.306791999999994
2020-01-01 01:30:00 31.304574

我正在创建一个名为 start 的新列,如下所示:

df = df.rename(columns={'dates': 'end'})
df['start']= df['end'].shift(1)

当我这样做时,我得到以下结果:

end values  start
2020-01-01 00:15:00 38.61487 NaT
2020-01-01 00:30:00 36.905204 2020-01-01 00:15:00
2020-01-01 00:45:00 35.136584 2020-01-01 00:30:00
2020-01-01 01:00:00 33.60378 2020-01-01 00:45:00
2020-01-01 01:15:00 32.306791999999994 2020-01-01 01:00:00
2020-01-01 01:30:00 31.304574 2020-01-01 01:15:00

我想用

填充该 NaT
2020-01-01 00:00:00

如何做到这一点?

最佳答案

使用Series.fillna日期时间s,例如通过 Timestamp :

df['start']= df['end'].shift().fillna(pd.Timestamp('2020-01-01'))

或者如果 pandas 0.24+ 带有 fill_value 参数:

df['start']= df['end'].shift(fill_value=pd.Timestamp('2020-01-01'))

如果所有日期时间都是规则的,则始终可以通过 offsets.DateOffset 减去 15 分钟 的差值:

df['start']= df['end'] - pd.offsets.DateOffset(minutes=15)
print (df)
end values start
0 2020-01-01 00:15:00 38.614870 2020-01-01 00:00:00
1 2020-01-01 00:30:00 36.905204 2020-01-01 00:15:00
2 2020-01-01 00:45:00 35.136584 2020-01-01 00:30:00
3 2020-01-01 01:00:00 33.603780 2020-01-01 00:45:00
4 2020-01-01 01:15:00 32.306792 2020-01-01 01:00:00
5 2020-01-01 01:30:00 31.304574 2020-01-01 01:15:00

关于python - 如何填写列中的第一个日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60059300/

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