我正在编写的代码是:
df = pd.read_excel("Ahiakpor.xlsx", index_col = 0)
df.index = pd.to_datetime(
df.index
.str.replace("M1", "-01")
.str.replace("M2", "-02")
.str.replace("M3", "-03")
.str.replace("M4", "-04")
.str.replace("M5", "-05")
.str.replace("M6", "-06")
.str.replace("M7", "-07")
.str.replace("M8", "-08")
.str.replace("M9", "-09")
.str.replace("M10","-10")
.str.replace("M11","-11")
.str.replace("M12","-12")
)
字符串
字符串是日期例如。2001 M1。我希望它是2001-01。它抛出这个错误:
ParserError: Unknown string format: 2000-010
型
2条答案
按热度按时间y53ybaqx1#
您可以在解析字符串时指定格式。Pandas将自动使用该格式从字符串中推断日期
个字符
91zkwejq2#
如果输入字符串为
"2023M12"
,则将M1
替换为-O1
,结果为"2023-012"
。颠倒
str.replace
调用的顺序可能会解决这个问题,但这是一个脆弱而丑陋的解决方案。您可以使用正则表达式仅在字符串的末尾替换
-MX
模式,并且可以在-M<digit>
或-M1<digit>
上进行匹配,而不是枚举所有12个可能的字符串。但是Shubham Sharma's answer可能是一个更好的解决方案;它专门处理日期字符串,而不是一般的字符串,因此可能不太容易出错。