python - 如何将大于 59 的熊猫数据框的分钟列转换为正确的日期时间?
问题描述
我有一个有 2 列的 pandas 数据框:第一列是分钟,第二列是秒。它看起来像这样:
min s
0 0 0
1 0 1
2 0 2
3 0 3
4 0 4
5 0 5
6 0 6
7 0 7
8 0 8
9 0 9
10 0 10
11 0 11
12 0 12
我可以通过以下方式将其转换为日期时间:
l = []
for MinSec in list(zip(df['min'],df['s'])):
l.append(':'.join(map(str,MinSec)))
pd.to_datetime(pd.Series(l), format='%M:%S')
但是,当 min 列达到 59 时,它会继续向上计数(60、61、62 等)。这会引发错误:
ValueError: time data '60:0' does not match format '%M:%S' (match)
我将如何处理此错误并将上述两列熊猫数据框成功加入日期时间?
解决方案
计算总秒数:
df['total_second']=60.*df['min']+df['s']
然后您可以将其转换为 Datetime :
pd.to_datetime(df['total_second'], unit='s')
推荐阅读
- java - 使用 Maven 添加文件夹中的所有文件以构建路径依赖项
- c# - 有没有一种方法可以等待当前不是异步的方法?
- excel - Excel VBA 处理工作簿在随机数量的工作簿后停止
- javascript - 在 React 中使用泛型键入 defaultProp 箭头函数方法
- php - 生成 WSSE-Header 时使用 Koltin 访问 ORO-Platform API 失败
- html - 在带有换行符的 flex 模型元素中切断前一个元素
- angular - 运行 e2e 量角器测试时如何指定 Angular 4 环境?
- javascript - 从弹出窗口提交表单后如何显示div?
- javascript - Visual Studio:以红色下划线的 eslint 错误
- javascript - 续集回滚不适用于 promise.all