如何为年/月/日/小时/分钟/秒的日期时间创建熊猫列?

Mat*_*ttM 3 python pandas

我正在尝试在Pandas中构造一个datetime列,该列代表描述年,月,日等的多个列。我在该主题上可以找到的其他大多数答案都涉及相反方向的处理数据(从datetime到integer hour,对于实例)。

df = pd.DataFrame()

df['year'] = [2019, 2019, 2019, 2019, 2019, 2019]
df['month'] = [8, 8, 8, 8, 8, 8]
df['day'] = [1, 1, 1, 1, 1, 1]
df['hour'] = [10,10,11,11,12,12]
df['minute'] = [15,45,20,40,10,50]
df['second'] = [0, 1, 5, 10, 10, 11]
Run Code Online (Sandbox Code Playgroud)

目标:

df['datetime_val'] = 
0   2019-08-01 10:15:00
1   2019-08-01 10:45:01
2   2019-08-01 11:20:05
3   2019-08-01 11:40:10
4   2019-08-01 12:10:10
5   2019-08-01 12:50:11
Name: datetime_vals, dtype: datetime64[ns]
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,如何快速创建一个代表组成时间信息的datetime列?我可以使用.apply()和一个辅助函数轻松地做到这一点,但我设想对数百万行执行此操作。我喜欢内置/矢量化的东西。谢谢!

WeN*_*Ben 5

IIUC to_datetime可以采用dataframe ,除非列的名称正确

pd.to_datetime(df)
0   2019-08-01 10:15:00
1   2019-08-01 10:45:01
2   2019-08-01 11:20:05
3   2019-08-01 11:40:10
4   2019-08-01 12:10:10
5   2019-08-01 12:50:11
dtype: datetime64[ns]
Run Code Online (Sandbox Code Playgroud)