【问题标题】:Trouble with Converting to Datetime Type in Python在 Python 中转换为日期时间类型的问题
【发布时间】:2020-11-14 18:20:17
【问题描述】:

我有一个类似于以下内容的 Pandas 数据框:

valid               Measurement  Room
2014-02-03 12:48    0.50         23
2014-02-03 12:53    0.43         23
2014-02-03 12:59    0.21         23
2014-02-03 13:06    0.23         23
2014-02-03 13:13    0.10         23
...

我正在尝试阅读这些日期。它们目前是字符串,但我想将它们读作date time;但是,效果并不好。

def hourlyDataSet(fp):
  df = pd.read_csv(fp)#data frame
  df[['day', 'time']] = df['valid'].str.split().apply(pd.Series)
  mat='%Y-%m-%d %H:%M'
  df['datetime'] = pd.to_datetime(df['time'],format = mat)
  newdf =  df.groupby(pd.Grouper(key = "datetime",freq= "H")).sum()
  return df

使用上述函数,我收到此错误:

ValueError: time data '12:48' does not match format '%Y-%m-%d%H:%M' (match)

我该如何解决这个问题?

【问题讨论】:

    标签: python python-3.x pandas dataframe date


    【解决方案1】:
    • 如果拆分'valid',那么mat'time'的格式不匹配
    • 函数应该如下
    def hourlyDataSet(fp):
    
        # read the data file
        df = pd.read_csv(fp)
    
        # convert the valid column, to a datetime format
        df['valid'] = pd.to_datetime(df['valid'], format='%Y-%m-%d %H:%M')
    
        # use .Grouper on the datetime column
        newdf =  df.groupby(pd.Grouper(key="valid", freq="H")).sum()
    
        return newdf
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-19
      • 2020-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-28
      • 2021-06-12
      • 1970-01-01
      相关资源
      最近更新 更多