gpt4 book ai didi

python - Timedelta 索引的 IF Else 条件

转载 作者:行者123 更新时间:2023-12-01 09:13:50 25 4
gpt4 key购买 nike

我有以下多索引数据

               2002074266              2002074444
TimeStamp Total Freq Total Freq
HH:MM Pc Hz Pc Hz
06:50 3 10 7 13
06:55 4 11 8 14
07:00 5 12 9 15
08:55 6 13 1 12
09:00 7 13 3 13

我正在尝试在时间范围内执行 IF ELSE 条件。每行时间间隔为 5 分钟。如果 07:00 到 09:10 之间的时间范围缺少任何 5 分钟数据(如本示例中的情况),则将运行 ELSE 语句。我不知道如何声明 IF ELSE 的时间范围。

这是我当前的代码:

df = pd.read_csv("Test.csv", header=[0,1], skiprows = 3, index_col=0)
df1 = df.loc[:,(slice(None), ['Total'])]
df2 = df1.iloc[1:,:]
df2.index = pd.to_timedelta(df2.index + ':00')

if (df2.index == '07:00:00').any():
print('Complete data')
else:
print("Filling in progress")
df2 = df2.resample('5min').ffill()
print('Missing data, forward filled')

df2.to_csv('Result.csv')

非常感谢任何帮助或建议。谢谢。

最佳答案

我认为需要:

if (df2.loc['07:00:00':'09:10:00'].index.to_series().diff().iloc[1:] == '00:05:00').all():
print('Complete data')

说明:

  1. 必要时检查差异的第一个过滤范围
  2. 转换 to_series ,因为diff尚未实现 TimedeltaIndex
  3. 通过 iloc 删除第一个 NaN
  4. 比较 5 分钟并检查是否 all 正确s

关于python - Timedelta 索引的 IF Else 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51417378/

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