有关一个代码段的问题,可能与日期时间函数有关

时间:2018-08-15 23:20:22

标签: python-3.x pandas

有代码段,

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} }。代码的哪一部分导致了此更改。

enter image description here

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更好。如果您渴望datetimedatetime.date会更简洁一些,因为您似乎只处理日期而不是时间。