从整数列Hours和Minutes创建Datetime列

2024-06-17 12:11:02 发布

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

我有一个4位int列的数据帧:

df['time'].head(10)
0    1844
1    2151
2    1341
3    2252
4    2252
5    1216
6    2334
7    2247
8    2237
9    1651
Name: DepTime, dtype: int64

我已经验证了max是2400,min是1。我想把它转换成带有小时和分钟的日期时间列。我该怎么做


Tags: 数据namedftime时间minheadmax
3条回答

试试这个

df['conversion'] = (df['time'].apply(lambda x: pd.to_datetime(x, format = '%H%M')).dt.strftime('%H:%M'))

IIUC公司

pd.to_datetime(df.time.astype(str),format='%H%M').dt.strftime('%H:%M')
Out[324]: 
0    21:51
1    13:41
2    22:52
3    22:52
4    12:16
5    23:34
6    22:47
7    22:37
8    16:51
Name: col2, dtype: object

如果这是4位数字,timedeltadatetime更合适:

pd.to_timedelta(df['time']//100 * 60 + df['time'] % 100, unit='m')

输出:

0   18:44:00
1   21:51:00
2   13:41:00
3   22:52:00
4   22:52:00
5   12:16:00
6   23:34:00
7   22:47:00
8   22:37:00
9   16:51:00
Name: time, dtype: timedelta64[ns]

如果有另一列date,则可能需要合并datetime以创建datetime

相关问题 更多 >