我目前面临有关熊猫date_range的问题。我有2个datetime64 [ns]类型的日期。开始日期和结束日期。我试图创建一个数据框,其中包含这两个日期之间的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)
(Timestamp('2019-07-06 00:00:00'),Timestamp('2019-06-26 00:00:00'))
已打印
预期结果是一个数据帧,其中具有开始日期和结束日期之间的日期作为索引
答案 0 :(得分:1)
显然您在start
和end
变量中犯了一个错误。由于开始是之后结束变量,因此要解决此问题,请将它们转过来:
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]
答案 1 :(得分:0)
也许您可以将index
更改为data
:
customdatedf = pd.DataFrame(data = pd.date_range(start, end, freq='D'))
请注意,列名将采用默认值0
。