pandas:无法解析未来的日期时间(随机deidentification),返回NaT

时间:2014-06-06 22:14:18

标签: python datetime pandas

我的数据已经被识别,并且已经有几年随机设置。我认为这就是弄乱pandas read_csv()和to_datetime,只能把它视为NaT。

  1. 使用read_csv():date_parser和infer_datetime_format并不富有成效。

  2. read_csv没有时间索引,然后转换为to_datetime,也没用。

  3. 在read_csv中设置我自己的解析函数: `

     #2943-02-28 00:00:00
     #%Y-%m-%d %H:%M:%S
     tparse = lambda x: pd.to_datetime(x, format='%Y-%m-%d %H:%M:%S') #,coerce=True)
     mc_data = pd.read_csv("./data/healthdata.csv",encoding='utf-8',names=hdr,sep='\t',skiprows=1, index_col='realtime', parse_dates=['realtime'], dayfirst=False,keep_date_col=True, verbose=True, nrows=2000, infer_datetime_format=True, date_parser=tparse )
    

    `

    绕过read_csv并在以下情况后应用to_datetime: `

      mc_data = pd.read_csv("./data/healthdata.csv", names=hdr, skiprows=1, nrows=2000)
      mc_data['realtime'] = mc_data['realtime'].apply(tparse) 
      print mc_data.realtime.apply(type)
    

    `

    输出:

    0     <class 'pandas.tslib.NaTType'>
    1     <class 'pandas.tslib.NaTType'>
    2     <class 'pandas.tslib.NaTType'>
    

    我认为问题是将来设定的日期,这会导致问题。有没有人有这个问题,有更好的编码吗?

    此问题随着从0.10升级到0.14而出现。

    -Thanks

    --- ----编辑 每个主题的值范围(随机)将来数百年。在我的小子集上,范围是300年,有些值相差几秒......所以这样的事情:galactica = pd.period_range('2900-01-01', '3200-01-01', freq='D') 与实际行数相比是巨大的(这只是一个小子集,当我在整个数据集上运行时,它将完全不可行)

    或者,执行mc_data = mc_data.to_period(freq="min")之类的操作会引发错误。

    我想我可以尝试将所有日期减去1000年,但还有更好的方法吗?

    -Thanks

0 个答案:

没有答案