我试图使用Pandas ' to _datetime‘来转换日期和时间字符串,但是字符串值是非零填充的:
3/31/22 23:30
3/31/22 23:45
4/1/22 0:00
4/1/22 0:15我有以下内容,但是得到了一个不匹配的错误
pd.to_datetime(df.TimeStamp, format="%m/%d/%y %H:%m")是否有办法添加零填充或让'to_datetime‘接受上述格式?
发布于 2022-09-07 23:23:29
问题不在于填充,而在于您的格式调用。注意分钟(m)与月份(M)的大写,两者都使用(m)。(这里的文件)。
下面是工作代码的演示
pd.to_datetime(df.TimeStamp,format="%m/%d/%y %H:%m")
应该是
pd.to_datetime(df.TimeStamp,format="%M/%d/%y %H:%m")
import pandas as pd
times = [
"3/31/22 23:30",
"3/31/22 23:45",
"4/1/22 0:00",
"4/1/22 0:15"
]
df = pd.DataFrame(times, columns=['TimeStamp'])
pd.to_datetime(df.TimeStamp, format="%m/%d/%y %H:%M")
>> 0 2022-03-31 23:30:00
>> 1 2022-03-31 23:45:00
>> 2 2022-04-01 00:00:00
>> 3 2022-04-01 00:15:00
>> Name: TimeStamp, dtype: datetime64[ns]尽管如此,如果有人在这里寻找零填充的解决方案,那么散列/破折号的技巧值得一读(尽管它在许多情况下并不有效)。
发布于 2022-09-07 23:19:52
df['date'].astype('datetime64').dt.strftime('%m/%d/%y %H:%M')0 03/31/22 23:30
1 03/31/22 23:45
2 04/01/22 00:00
3 04/01/22 00:15所用数据
data = {'': {0: ' ', 1: ' ', 2: ' ', 3: ' '},
'date': {0: '3/31/22 23:30',
1: '3/31/22 23:45',
2: '4/1/22 0:00',
3: '4/1/22 0:15'}}
df=pd.DataFrame(data)
df date
0 3/31/22 23:30
1 3/31/22 23:45
2 4/1/22 0:00
3 4/1/22 0:15https://stackoverflow.com/questions/73642093
复制相似问题