gpt4 book ai didi

python - 如何在 python 中迭代给定日期的几个小时?

转载 作者:太空宇宙 更新时间:2023-11-04 09:22:56 25 4
gpt4 key购买 nike

我有以下温度读数的时间序列数据:

DT                Temperature
01/01/2019 0:00 41
01/01/2019 1:00 42
01/01/2019 2:00 44
......
01/01/2019 23:00 41
01/02/2019 0:00 44

我正在尝试编写一个函数来比较给定日期每小时的温度变化。任何大于 3 的更改都会增加 quickChange 计数器。像这样:

def countChange(day):
for dt in day:
if dt+1 - dt > 3: quickChange = quickChange+1

我可以调用该函数一天,例如:countChange(df.loc['2018-01-01'])

最佳答案

使用Series.diff通过 3 进行比较并通过 sum 计算 True 的值:

np.random.seed(2019)

rng = (pd.date_range('2018-01-01', periods=10, freq='H').tolist() +
pd.date_range('2018-01-02', periods=10, freq='H').tolist())
df = pd.DataFrame({'Temperature': np.random.randint(100, size=20)}, index=rng)
print (df)
Temperature
2018-01-01 00:00:00 72
2018-01-01 01:00:00 31
2018-01-01 02:00:00 37
2018-01-01 03:00:00 88
2018-01-01 04:00:00 62
2018-01-01 05:00:00 24
2018-01-01 06:00:00 29
2018-01-01 07:00:00 15
2018-01-01 08:00:00 12
2018-01-01 09:00:00 16
2018-01-02 00:00:00 48
2018-01-02 01:00:00 71
2018-01-02 02:00:00 83
2018-01-02 03:00:00 12
2018-01-02 04:00:00 80
2018-01-02 05:00:00 50
2018-01-02 06:00:00 95
2018-01-02 07:00:00 5
2018-01-02 08:00:00 24
2018-01-02 09:00:00 28

#if necessary create DatetimeIndex if DT is column
df = df.set_index("DT")

def countChange(day):
return (day['Temperature'].diff() > 3).sum()

print (countChange(df.loc['2018-01-01']))
4

print (countChange(df.loc['2018-01-02']))
9

关于python - 如何在 python 中迭代给定日期的几个小时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59170123/

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