Python Pandas将日期和时间合并为一列

2024-09-28 10:13:14 发布

您现在位置:Python中文网/ 问答频道 /正文

如何将Day(datetime64[ns])和Hour(int64)组合成一个datetime列?在

         Day  Hour
0 2010-04-24    17
1 2012-08-20    10
2 2016-03-06     9
3 2016-01-02    10
4 2010-12-21     4

Tags: datetimensdayhourdatetime64int64
2条回答
df = pd.DataFrame({
    'Day': np.array(['2010-04-24', '2012-08-20', '2016-03-06', '2016-01-02', '2010-12-21'], dtype=np.datetime64), 
    'Hour': np.array([17, 10, 9, 10, 4], dtype=np.int64)})

>>> pd.to_datetime(df.Day) + pd.to_timedelta(df.Hour, unit='h')
0   2010-04-24 17:00:00
1   2012-08-20 10:00:00
2   2016-03-06 09:00:00
3   2016-01-02 10:00:00
4   2010-12-21 04:00:00
dtype: datetime64[ns]

使用此列表理解创建一个列,该列使用时间增量公司名称:

data = {'Day':pd.to_datetime(['2010-04-24','2012-08-20','2016-03-06','2016-01-02','2010-12-21']),'Hour':[17,10,9,10,4]}
df = pd.DataFrame(data)
df['Datetime'] = [df.loc[x,'Day'] + dt.timedelta(hours = int(df.loc[x,'Hour'])) for x in list(df.index)]

这假设一天中的小时/分钟/秒列都是00:00:00

退货

^{pr2}$

相关问题 更多 >

    热门问题