在python中将int转换为日期

时间:2019-03-31 09:28:45

标签: python

我有以下专栏

day
20190101
20190101
20190102
20190103

我想将其更改为01-01-2019

我为此使用了以下代码

data['day'] = pd.to_datetime(data['day'], format='%Y/%m/%d')

但它提供以下输出:1970-01-01 00:00:00.020190101

data[["day"]] = data[["day"]].apply(pd.to_datetime)

也尝试过

data['day'] = pd.to_datetime(data['day'], format='%Y/%m/%d')

预期输出为01-01-2019,但实际输出为1970-01-01 00:00:00.020190101

2 个答案:

答案 0 :(得分:0)

您可以简单地实现:

def func(val):
    x = str(val)
    return '{}-{}-{}'.format(x[6:8],x[4:6],x[0:4])

然后为每个条目运行它。

答案 1 :(得分:0)

只需修复to_datetime函数的format参数,当实际格式为%Y/%m/%d时,您就拥有%Y%m%d

df['dt'] = pd.to_datetime(df['day'], format='%Y%m%d')

print(df)

输出:

        day         dt
0  20190101 2019-01-01
1  20190101 2019-01-01
2  20190102 2019-01-02
3  20190103 2019-01-03