有代码段,
start = datetime.datetime.strptime("1973-01-01", "%Y-%m-%d")
date_list = [start + relativedelta(months=x) for x in range(0,115)]
date_list的打印内容如下:
datetime.datetime(1973, 1, 1, 0, 0),
datetime.datetime(1973, 2, 1, 0, 0),
datetime.datetime(1973, 3, 1, 0, 0),
datetime.datetime(1973, 4, 1, 0, 0),
datetime.datetime(1973, 5, 1, 0, 0),
datetime.datetime(1973, 6, 1, 0, 0),
datetime.datetime(1973, 7, 1, 0, 0),
datetime.datetime(1973, 8, 1, 0, 0),
然后有
df['index']=date_list
df.set_index(['index'], inplace=True)
df.index.name=None
但是,df
的打印输出如下所示,这使我感到困惑的是,df
的索引类似于1973-03-01
,而原始的date_list看起来像{{1} }。代码的哪一部分导致了此更改。
答案 0 :(得分:0)
为了简洁和易读起见,如果您看到datetime.datetime(1973,3,1,0,0)
而不是1973-03-01
,会更快乐吗?创建DataFrame时,熊猫可能会将日期类型强制为pd.Timestamp
,也许会发生df.set_index()
命令。您也可以始终检查自己的df.index
。
我个人认为datetime.datetime(1973,3,1,0,0)
有点丑陋,而1973-03-01
更好。如果您渴望datetime
,datetime.date
会更简洁一些,因为您似乎只处理日期而不是时间。