我在将日期转换为正确格式时遇到问题。
我有一个看起来像这样的列:20130525,存储为int64。
我正在尝试将其设置为日期,但出现问题。
我写了一个看起来像这样的函数:
def reformat_dates(df):
df['column'] = pd.to_datetime(df['column'], format = "%Y-%m-%d")
return df
但是当我执行该函数时,我最终看到这样的一列:
1970-01-01 00:00:00.020130525
我的函数是否存在某种问题,使其以这种方式默认设置?我希望格式为
2013-05-25
答案 0 :(得分:2)
这有用吗?
df['column'] = pd.to_datetime(df['column'], format = "%Y%m%d").dt.strftime('%Y-%m-%d')
答案 1 :(得分:1)
我认为您要转换的列是unix时间戳格式 并且您应该使用unit ='s'
def reformat_dates(df):
df['column'] = pd.to_datetime(df['column'], unit='s')
return df
答案 2 :(得分:0)
我认为需要:
df = pd.DataFrame({'column':['20130525','20130525']})
df['column'] = pd.to_datetime(df['column'], format = "%Y%m%d")
print (df)
column
0 2013-05-25
1 2013-05-25
答案 3 :(得分:0)
答案 4 :(得分:0)
import datetime
import numpy as np
df['creationDate'] =(df['creationDate']).astype(np.int64) // 10**3
df['pubDate'] = (df['pubDate']).astype(np.int64) // 10**3