从2个浮动列创建一个datetime列

时间:2018-07-04 19:20:35

标签: python pandas datetime dataframe

我正在尝试将2个float列合并到pandas数据框中的datetime列中。例如,列年的值为2018.0,列月的值为1.0,而我希望输出的日期时间为2018年1月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

请注意,这依赖于严格的命名约定:yearmonthday是可接受的组合。如有必要,您可以通过pd.DataFrame.rename重命名列。