python - 在 Python 中将 2 个日期列转换为日期时间
问题描述
我尝试了几件事来尝试将 2 个日期列转换为单个日期时间列,但我不断收到错误。我在名为 dfn2 的 df 中的数据如下所示:
Plant_Name YYMMDD HHMM vel(m/s)
0 CA I 20180101 100 6.197878
1 CA I 20180101 200 6.768227
2 CA I 20180101 300 6.779299
3 CA I 20180101 400 7.008282
而且,我试图以一个单一的日期时间列结束,例如:
Plant_Name date_time vel(m/s)
0 CA I 01/01/2018 1:00:00 AM 6.197878
1 CA I 01/01/2018 2:00:00 AM 6.768227
2 CA I 01/01/2018 3:00:00 AM 6.779299
3 CA I 01/01/2018 4:00:00 AM 7.008282
我尝试过这样的事情:
dfn2[['YYMMDD','HHMM']] = dfn2[['YYMMDD','HHMM']].apply(pd.to_datetime, format='%Y-%m-%d %H:%M.%f')
并得到这个错误:
ValueError: time data '20180101' does not match format '%Y-%m-%d %H:%M.%f' (match)
解决方案
您的格式字符串不正确。试试这个:
>> pd.to_datetime(df["YYMMDD"].astype(str)+df["HHMM"].astype(str).str.zfill(4), format="%Y%m%d%H%M")
0 2018-01-01 10:00:00
1 2018-01-01 20:00:00
2 2018-01-01 03:00:00
3 2018-01-01 04:00:00
dtype: datetime64[ns]
这样zfill
做是为了确保每个 HHMM 条目的长度正好是四个字符。
推荐阅读
- typescript - 生成规范和路线时挂起的 Tsoa/Typescript
- vue.js - 如何为 dockerized vue3 应用程序创建活动探测状态的端点?
- http - 如何在 IIS 10 上允许 LINK 和 UNLINK
- python - 将“ObservedDict”转换为自定义对象(文本中包含的对象的数据)[Python]
- node.js - 无法将项目推送到 Heroku
- javascript - Jqgrid edittype : select editoptions: dataUrl 没有被调用来填充数据
- javascript - 如何使用 useRef 挂钩访问数据属性值?
- python - 在精神病学中使用顺序 ITI 随机化图像呈现
- swift - Localizable.strings 在列表中不起作用
- python - CMakeLists.txt:2 处的 CMake 错误
: 找不到 CMAKE_Fortran_COMPILER