Python日期时间和数据帧索引问题

2024-04-19 05:59:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个datetime问题,我正在试图匹配一个dataframe 以日期作为索引值。你知道吗

例如,我有dr,这是一个numpy.datetime数组。你知道吗

dr = [numpy.datetime64('2014-10-31T00:00:00.000000000'),
      numpy.datetime64('2014-11-30T00:00:00.000000000'),
      numpy.datetime64('2014-12-31T00:00:00.000000000'),
      numpy.datetime64('2015-01-31T00:00:00.000000000'),
      numpy.datetime64('2015-02-28T00:00:00.000000000'),
      numpy.datetime64('2015-03-31T00:00:00.000000000')]

然后我有一个带有日期作为索引值的returndf的数据帧

print(returndf) 
             1    2    3    4    5    6    7    8    9    10
10/31/2014  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN
11/30/2014  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

请忽略缺少的值

每当我尝试匹配dr和数据帧returndf中的日期时,仅使用以下代码1个月returndf.loc[str(dr[1])]
我出错了

KeyError: 'the label [2014-11-30T00:00:00.000000000] is not in the [index]'

如果有人能帮助我将numpy.datetime64('2014-10-31T00:00:00.000000000')转换成10/31/2014,这样我就可以将它与数据帧索引值匹配,我将不胜感激。你知道吗

谢谢你


Tags: the数据代码numpydataframedatetime数组nan
1条回答
网友
1楼 · 发布于 2024-04-19 05:59:39
  1. 您的returndf索引不是DatetimeIndex。Make是这样的:

    returndf = returndf.set_index(pd.to_datetime(returndf.index))
    
  2. 您的dr是Numpy datetime64对象的列表。这让我很困扰:

    dr = pd.to_datetime(dr)
    
  3. 您的示例数据清楚地显示returndf的索引不包括dr中的所有项。在这种情况下,使用reindex

    returndf.reindex(dr)
    
                 1   2   3   4   5   6   7   8   9  10
    2014-10-31 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
    2014-11-30 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
    2014-12-31 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
    2015-01-31 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
    2015-02-28 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
    2015-03-31 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
    

相关问题 更多 >