我正在尝试找到一种方法来将熊猫数据框中的包含月份(1、2,.. 30)的列转换为日期时间。年和月是静态的(例如,始终为2014年11月),并且不包含在数据框中。
示例:
day = 13转换为2014年11月13日。
day = 27转换为2014年11月27日。
答案 0 :(得分:4)
使用to_datetime
,将转换列转换为字符串,并在月份中加上年份:
df = pd.DataFrame({'day':[13,27,9,4,2,3]})
df['day'] = pd.to_datetime('2014-01-' + df['day'].astype(str))
或将参数origin
与unit
一起使用,但必须减去1:
df['day'] = pd.to_datetime(df['day'] - 1, unit='d', origin='2014-01-01')
print (df)
day
0 2014-01-13
1 2014-01-27
2 2014-01-09
3 2014-01-04
4 2014-01-02
5 2014-01-03