我的代码:
FFA_mean = ['0.511', '0.704', '0.922', '0.764', '1.084']
FFA_mean = [float(i) for i in FFA_mean]
发生的错误:
crime = pd.read_csv("DATA/OAKLAND.csv", parse_dates=True)
crime['DATETIME'] = pd.to_datetime(crime['DATETIME'], format=time_format)
time_format = '%-m/%-d/%Y %H:%M'
一些采样日期:
'-' is a bad directive in format '%-m/%-d/%Y %H:%M'
有人知道正确的time_format是什么吗?到目前为止,我无法获得正确的代码。 谢谢
答案 0 :(得分:3)
该错误专门告诉您该问题。错误的指令。
您应该在此处阅读文档:https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior
伪指令为%m
,而不是%-m
。删除破折号将修复它。
答案 1 :(得分:0)
遇到此错误时,您知道不会使用“-”作为指令格式。 因此,您应该采用替代策略,例如在将格式转换为日期时间之前替换“-”字符:
1/例如第一种替换方式
from datetime import datetime
from re import sub
date = '2021-07-02 00:00:00'
# re.sub(pattern, repl, string, count=0, flags=0)
cdat = datetime.strptime(sub('-', '', date), '%Y%m%d %H:%M:%S')
print(cdat)
# 2021-07-02 00:00:00
2/例如第二种替换方式
# re.sub(pattern, repl, string, count=0, flags=0)
cdat = datetime.strptime(date.replace('-', ''), '%Y%m%d %H:%M:%S')
print(cdat)
# 2021-07-02 00:00:00
这仅用于日期时间转换,但这里有一个带有熊猫数据框的示例:
import pandas as pd
crime = pd.DataFrame({"DATETIME": ['10-10-2018 20:00', '11-19-2018 14:15']})
# DATETIME
# 0 10-10-2018 20:00
# 1 11-19-2018 14:15
crime = crime.applymap(lambda x: sub('-', '', str(x)))
# DATETIME
# 0 10102018 20:00
# 1 11192018 14:15
time_format = '%m%d%Y %H:%M'
crime['DATETIME'] = pd.to_datetime(crime['DATETIME'], format=time_format)
print(crime)
# DATETIME
# 0 2018-10-10 20:00:00
# 1 2018-11-19 14:15:00