首页 > 解决方案 > 熊猫 date_range 不返回任何值

问题描述

我目前面临关于熊猫 date_range 的问题。我在 datetime64[ns] 类型中有 2 个日期。开始日期和结束日期。我正在尝试创建一个包含这两个日期之间的 date_range 值的数据框,作为索引。但是,创建的数据框是空的,即使它应该包含值。

请注意,当我复制粘贴该代码并在网站的英文版中使用它时,它运行良好。我正面临着希腊人的挑战。

我写的代码是:

customdatedf = pd.DataFrame(index = pd.date_range(start, end, freq='D'))

开始和结束日期是从另一个数据框定义的,如下所示:

start = df['Date'].iloc[0]
end = df['Date'].iloc[-1]

并且它们的值被正确返回,因为它出现在

print(start, end)

(时间戳('2019-07-06 00:00:00'),时间戳('2019-06-26 00:00:00'))

这是打印的

预期结果是一个数据框,其索引为开始日期和结束日期之间的日期

标签: pythonpandasdataframedatetime

解决方案


显然你在你的startend变量上犯了一个错误。由于开始是结束变量之后,所以要解决这个问题,把它们转过来:

start = pd.Timestamp('2019-07-06 00:00:00') 
end = pd.Timestamp('2019-06-26 00:00:00')

pd.DataFrame({'Col_dummy':['Dummy']}, index=pd.date_range(end, start, freq='D'))

           Col_dummy
2019-06-26     Dummy
2019-06-27     Dummy
2019-06-28     Dummy
2019-06-29     Dummy
2019-06-30     Dummy
2019-07-01     Dummy
2019-07-02     Dummy
2019-07-03     Dummy
2019-07-04     Dummy
2019-07-05     Dummy
2019-07-06     Dummy

或者,如果您只想要一个index

pd.DataFrame(index=pd.date_range(end, start, freq='D'))

Empty DataFrame
Columns: []
Index: [2019-06-26 00:00:00, 2019-06-27 00:00:00, 2019-06-28 00:00:00, 2019-06-29 00:00:00, 2019-06-30 00:00:00, 2019-07-01 00:00:00, 2019-07-02 00:00:00, 2019-07-03 00:00:00, 2019-07-04 00:00:00, 2019-07-05 00:00:00, 2019-07-06 00:00:00]

推荐阅读