|
|
发表于 2023-5-11 18:44:24
|
显示全部楼层
出错的原因是缩进不一致。应该将第一行和第二行的缩进对齐,即:
- df["year"] = df["date"].apply(lambda x: int(str(x)[:4]))
- df["month"] = df["date"].apply(lambda x: int(str(x)[4:6]) if not str(x)[4:6].isspace() else 0)
- df["day"] = df["date"].apply(lambda x: int(str(x)[6:]))
复制代码
另外,如果日期格式有非数字字符,比如空格或其他符号,会导致字符串切片出现错误。可以在字符串切片之前使用 `.strip()`去除空格等字符,可以改为:
- df["year"] = df["date"].apply(lambda x: int(str(x).strip()[:4]))
- df["month"] = df["date"].apply(lambda x: int(str(x).strip()[4:6]) if not str(x).strip()[4:6].isspace() else 0)
- df["day"] = df["date"].apply(lambda x: int(str(x).strip()[6:]))
复制代码
这样处理后,在出现非数字字符时就不会报错了。
有用请设置最佳答案 |
|