2024-06-17 12:11:02 发布
网友
我有一个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。我想把它转换成带有小时和分钟的日期时间列。我该怎么做
试试这个
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位数字,timedelta比datetime更合适:
timedelta
datetime
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,则可能需要合并date和time以创建datetime列
date
time
试试这个
IIUC公司
如果这是4位数字,
timedelta
比datetime
更合适:输出:
如果有另一列
date
,则可能需要合并date
和time
以创建datetime
列相关问题 更多 >
编程相关推荐