【问题标题】:How count number of values before an specify hour in timedate Pandas dataframe如何在 timedelta Pandas 数据帧中计算特定小时之前的值的数量
【发布时间】:2019-11-28 17:37:23
【问题描述】:

我使用这种数据,构建我的 pandas 并使用 group_by 将我的值四舍五入到 15m... 一件事永远不会奏效,如何计算低于 11h00 的值的数量?这是我的数据样本

index      DATEHEUREMAX
12:07      2019-06-03  12:07:28
10:04      2019-06-04  10:04:25
11:14      2019-06-09  11:14:25

我不知道如何只指定小时...

【问题讨论】:

  • 您希望该样本数据的输出是什么?还有dtypes?
  • 本例输出=1,只有一个值低于11h00
  • (df.index.hour == 11).sum()

标签: python pandas datetime count


【解决方案1】:

使用Series.dt.hour

(df['DATEHEUREMAX'].dt.hour < 11).sum()
#1

如果你想过滤你的数据框:

df_filtered=df[(df['DATEHEUREMAX'].dt.hour<11)]
print(df_filtered)

   index        DATEHEUREMAX
1  10:04 2019-06-04 10:04:25

现在你还可以计算行数:

len(df)
#1

【讨论】:

    【解决方案2】:

    通常我们会这样做

    df.index=pd.to_timedelta(df.index+':00')
    df.loc[df.index<='11:00:00']
    Out[137]: 
                      DATEHEUREMAX
    index                         
    10:04:00  2019-06-04  10:04:25
    sum(df.index<='11:00:00')
    Out[138]: 1
    

    【讨论】:

      猜你喜欢
      • 2020-04-09
      • 1970-01-01
      • 2020-01-15
      • 1970-01-01
      • 2021-05-15
      • 1970-01-01
      • 2017-11-28
      • 2021-06-14
      • 2020-08-27
      相关资源
      最近更新 更多