.dt.strftime给出错误的日期熊猫

时间:2020-04-09 16:01:51

标签: python pandas date datetime strftime

我有一个熊猫数据框,其中有一列CreatedDate。当前列的值如下所示:

id      CreatedDate
123     1586362930000
124     1586555550000

所需的输出是:

id      CreatedDate
123     2020-04-08T15:50:00Z
124     2020-04-08T15:45:00Z

我尝试了以下操作:

# Change the column type from int to datetime64[ns]
df['CreatedDate'] = pd.to_datetime(df['CreatedDate'])

new_df = df['CreatedDate'].dt.strftime("%Y-%m-%d"+"T"+"%H:%M:%S"+"Z")

输出是这样的:

id      CreatedDate
123     1970-01-01 00:26:26.362930
124     1970-01-01 00:26:26.365487

这不是我所期望的,我知道那些日子应该是4月8日。 我仅用一个字符串测试了dt.strftime("%Y-%m-%d"+"T"+"%H:%M:%S"+"Z"),它返回了所需的输出,但是,当我将其应用于数据框时,它无法正常工作

1 个答案:

答案 0 :(得分:3)

这是Unix时间

pd.to_datetime(df.CreatedDate,unit='ms').dt.strftime("%Y-%m-%d""T""%H:%M:%S""Z")

0    2020-04-08T16:22:10Z
1    2020-04-10T21:52:30Z
Name: CreatedDate, dtype: object