我正在尝试将2个float列合并到pandas数据框中的datetime列中。例如,列年的值为2018.0
,列月的值为1.0
,而我希望输出的日期时间为2018年1月1日。
有有效的方法吗?
答案 0 :(得分:1)
您可以在分配了day
系列后将数据帧馈送到pd.to_datetime
:
df = pd.DataFrame([[2018.0, 1.0], [2017.0, 5.0], [2019, 3.0], [2017, 12.0]],
columns=['year', 'month'])
df['datetime'] = pd.to_datetime(df.assign(day=1))
print(df)
year month datetime
0 2018.0 1.0 2018-01-01
1 2017.0 5.0 2017-05-01
2 2019.0 3.0 2019-03-01
3 2017.0 12.0 2017-12-01
请注意,这依赖于严格的命名约定:year
,month
,day
是可接受的组合。如有必要,您可以通过pd.DataFrame.rename
重命名列。