将数据框转换为日期格式

时间:2019-01-16 19:57:29

标签: python pandas dataframe matplotlib

我正在读取一个sql查询并将其用作数据框列。

    query = "SELECT count(*) as numRecords, YEARWEEK(date) as weekNum FROM events GROUP BY YEARWEEK(date)"
    df = pd.read_sql(query, connection)           

    date = df['weekNum']            
    records = df['numRecords']  

日期列,它是int64值,如下所示:

...
201850
201851
201852
201901
201902
...

如何将数据框转换为实际日期值(而不是int64),所以在绘制此图时,轴不会因年份变化而中断?

我正在使用matplotlib。

enter image description here

1 个答案:

答案 0 :(得分:2)

您所要做的就是使用:

pd.to_datetime(date,format='%Y&%W')

已编辑:

给出了一个错误,该错误应提到Day以将其转换为日期时间。因此,为了解决这个问题,我们在末尾附加一个“ -1”(表示星期一...,您可以添加0到6之间的任何特定值,每个值代表一天)。

然后使用格式中的附加%w获取“星期几”,它将起作用:

pd.to_datetime(date.apply(lambda x: str(x)+'-0'), format="%Y%W-%w")

请记住,要执行上述任何操作,date数据框或系列中的值应为字符串对象。如果没有,您可以使用d.astype(str)轻松地将它们转换,然后执行所有这些操作。