[英]Python Pandas Datetime and dataframe indexing issue
我有一个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
数据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')
转换为numpy.datetime64('2014-10-31T00:00:00.000000000')
10/31/2014
以便将其与数据帧索引值进行匹配,我将不胜感激。
谢谢,
您的returndf
索引不是DatetimeIndex
。 Make是这样的:
returndf = returndf.set_index(pd.to_datetime(returndf.index))
您的dr
是Numpy datetime64
对象的列表。 那困扰我:
dr = pd.to_datetime(dr)
您的样本数据清楚地表明, 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.