【问题标题】:How can I extract data from date range in time & date format?如何以时间和日期格式从日期范围中提取数据?
【发布时间】:2022-08-02 12:11:39
【问题描述】:

我有一个几年的日期,我正在尝试从特定范围和时间中提取数据,但我无法让它与 Pandas 一起使用。我确信日期和时间格式有问题,但奇怪的是我可以获得每小时平均值但无法提取日期和时间范围。

这是代码,但它从不返回任何数据,我知道那个时间段内有数据。我认为日期和时间格式是正确的,但不确定为什么它不起作用。

代码

import pandas as pd

import numpy as np

df = pd.DataFrame([[\'2018-01-01 16:00:00+00:00\', 2], [\'2018-01- 
01 17:00:00+00:00\', 3], [\'2018-01-01 18:00:00+00:00\', 6][\'2018- 
01-01 19:00:00+00:00\', 9]], columns=[\'time\', \'data\'])

print(df.head)

df[\'time\'] = pd.to_datetime(df[\'time\']) 

df2018 = df.loc[\'2018-01-01 16:30:00\':\'2018-01-01 18:00:00\']

print(df2018.head)

    标签: python pandas


    【解决方案1】:

    时间列是您的索引吗?如果没有,请将其设为您的索引:

    pd.set_index(df['time'])
    

    然后:

    df["2018-10-02":"2018-10-03"] # slicing a date period
    
    df.loc[(df['time'] > start_date) & (df['time'] <= end_date )] 
    

    【讨论】:

      【解决方案2】:

      为了让时间成为索引

      pd.set_index(df['time']) 返回错误

      为了让时间成为索引,我使用了

      df.set_index(['时间'])

      #To slice a date period 这对我有用

      从日期时间导入日期时间

      df2018 = df.loc[(df['time'] >= '2018-01-01 16:30:00') & (df['time'] <= '2018-01-01 18:00:00' )]

      【讨论】:

        猜你喜欢
        • 2023-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-23
        • 1970-01-01
        • 2019-03-29
        • 1970-01-01
        相关资源
        最近更新 更多