我有一个很大的数据集,它没有月份或日期的前导零。当使用日期时间时,它期望日和月有一个前导零。
以下是我的数据集中日期的呈现方式:1/1/2023
如何将其转换为:01/01/2023
- 尝试应用一种格式,但它似乎只适用于整数:print(“{:02 d}".format(number))-->这可以为整数添加前导零
- 已尝试:merged_dfs[“Date”] = merged_dfs.apply(lambda x:“{month:02}-{day:02}-{year}".格式(月=x.月,日=x.日,年=x.年)
这将返回一个错误:属性错误:“Series”对象没有属性“month”
- 已尝试:merged_dfs 'Date'] = merged_dfs.ts_placed.map(lambda x:“{year}-{month:02}”. format(year=x.year,month=x.month))
这将返回一个错误:属性错误:“DataFrame”对象没有属性“ts_placed”
- 已尝试:merged_dfs[“Date”] = pd.to_datetime(merged_dfs[“Date”],format="%-d-%-m-%Y”)
返回错误:ValueError:“-”是格式为“%-d-%-m-%Y”的错误指令
- 已尝试:merged_dfs[“Date”]=merged_dfs[“Date”].apply(pd.to_datetime,format="%d-$m-%Y”)
返回的错误:ValueError:时间数据“1/1/2023”与格式“%d-$m-%Y”不匹配,位于位置0。你可能想试试:- 如果字符串格式一致,则传递format
;- 如果你的字符串都是ISO 8601,但不一定是完全相同的格式,则传递format='ISO8601'
;- 传递format='mixed'
,并为每个元素单独推断格式。您可能希望在此旁边使用dayfirst
。
2条答案
按热度按时间gorkyyrv1#
你可以试试这个:
输出量:
amrnrhlw2#
重复使用@Scott的例子,格式无关的方法可以是使用正则表达式和
str.replace
来查找个位数并填充它们:输出量: