python - 如何处理熊猫列中的多个时间戳?
问题描述
TS 列有两个时间戳,我不知道可能会出现哪个时间戳
08/06/2020 11:52:07 PM # this is MM/dd/yyyy HH:mm:ss
07/08/2020 0:31:17 # this is dd/MM/yyyy HH:mm:ss
解决方案
由于带有格式的时间戳MM/dd/yyyy HH:mm:ss
总是带有一个,PM
或者AM
您可以定义一个解析器函数,例如:
import pandas as pd
def parse_dt(sdt):
if 'AM' in sdt or 'PM' in sdt:
return pd.to_datetime(sdt)
else:
return pd.to_datetime(sdt , dayfirst=True)
请注意,您也可以将其定义lambda
为直接使用,例如read_csv
lambda dt: pd.to_datetime(sdt) if 'AM' in dt or 'PM' in dt else pd.to_datetime(sdt , dayfirst=True)
对您的示例进行测试给出
>>> parse_dt('08/06/2020 11:52:07 PM')
Timestamp('2020-08-06 23:52:07')
>>> parse_dt('07/08/2020 0:31:17')
Timestamp('2020-08-07 00:31:17')
推荐阅读
- flutter - Flutter:如何以动态长度居中文本?
- wordpress - wordpress 中的 get_header_image() 和 header_image() 有什么区别
- flutter - 如何从数据表中删除空白空间?
- r - 将字符串拆分为单词并分配给新列
- windows - 如何在 Cygwin 中回显 Jenkins 工作区
- r - 尝试从延迟加载的网站读取 html 时出错
- python - AWS Elastic Beanstalk Python (3.8) 平台:除了使用 `requirements.txt` 之外,为带有 `--no-deps` 标志的 Python 包运行额外的 pip 命令
- ajax - 购物车和结帐页面中增值税金额的 AJAX 更新 - Woocommerce
- julia - Julia REPL 中只允许有限输出的选项是什么?
- java - 我想创建一个方法来删除另一个给定堆栈中的堆栈中的所有元素