python-3.x - 将字符串 1-24 转换为日期时间格式
问题描述
我有一个时间戳如下的数据集(模拟输出):|日期/时间| BLOCK1:BEDROOM:Zone 工作温度 C| |---------|-------------------------------------- -------------------| |01:00:00 |23.8| |02:00:00 |23.6| |03:00:00 |23.2| |03:00:00 |23.2| |03:00:00 |23.2| |03:00:00 |23.2| |03:00:00 |23.2| |03:00:00 |23.2| |03:00:00 |23.2| |24:00:00 |23.7|
这只是一个例子。我有 365 天的输出。我正在尝试使用以下代码将其转换为 DateTime 格式:
data2['Date/Time'] = pd.to_datetime(data2['Date/Time'], format = '%m/%d %H:%M:%S')
但这给了我以下错误:
time data '01/01 24:00:00' does not match format '%m/%d %H:%M:%S' (match)
如果我能得到这方面的帮助,我将不胜感激。
我尝试了以下链接中提到的方法,但它们不适用于我的情况: 如何在 Python 中将日期时间字符串中的时间从 24:00 转换为 00:00?
解决方案
@anky 正确的是 24:00:00 应该是 00:00:00。
import pandas as pd
df = pd.DataFrame(['01/01 01:00:00', '01/01 24:00:00'], columns = ['Date/Time'])
df['Date/Time'] = pd.to_datetime(df['Date/Time'], format='%m/%d %H:%M:%S')
print(df)
抛出此错误:
ValueError: time data '01/01 24:00:00' does not match format '%m/%d %H:%M:%S' (match)
解决此问题的一种方法是将 24:00:00 替换为 00:00:00。
import pandas as pd
df = pd.DataFrame(['01/01 01:00:00', '01/01 24:00:00'], columns = ['Date/Time'])
df['Date/Time'] = df['Date/Time'].replace({'24:00:00': '00:00:00'}, regex=True)
print(df)
Date/Time
0 01/01 01:00:00
1 01/01 00:00:00
另一种方法是忽略错误。
import pandas as pd
df = pd.DataFrame(['01/01 01:00:00', '01/01 24:00:00'], columns = ['Date/Time'])
df['Date/Time'] = pd.to_datetime(df['Date/Time'], format='%m/%d %H:%M:%S', errors='ignore')
print(df)
Date/Time
0 01/01 01:00:00
1 01/01 24:00:00
就个人而言,我会在日期/时间列中添加一年。
import pandas as pd
df = pd.DataFrame(['01/01 01:00:00', '01/01 24:00:00'], columns = ['Date/Time'])
df['Date/Time'] = df['Date/Time'].replace({'24:00:00': '00:00:00'}, regex=True)
df['Date/Time'] = pd.to_datetime('2020-' + df['Date/Time'])
print(df)
Date/Time
0 2020-01-01 01:00:00
1 2020-01-01 00:00:00
推荐阅读
- python - 从 Windows 终端执行 python 脚本时出现意外的语法错误
- java - 在 Java 中将对象列表写入 txt 文件的最快方法
- python - 如何通过 tf.Keras 使用 GPU 加速计算
- javascript - 开玩笑,测试一个输出字符串
- azure - 在 kubernetes 内的 server.xml 中设置环境变量
- reactjs - react-native-maps 自定义 Tiles 未显示
- jquery - window.resize,显示如何等待选项卡内容
- asp.net - 从 Web 窗体中的复合控件中的链接按钮获取单击事件
- sql - SQL左外连接表
- node.js - 在 nest.js 控制器中使用类验证器验证嵌套对象