【发布时间】:2022-10-08 14:36:28
【问题描述】:
我有一个这样的 excel 文件,我希望将日期字段编号转换为历史记录,如 (2021.7.22) 并在历史记录字段中使用 Python 再次替换。
一个朋友给我发了一个几乎可以回答我的代码,但代码中仍然存在错误。
这是我使用的代码
import pandas as pd
dfs = pd.read_excel('apal.xlsx', sheet_name=None)
output = {}
for ws, df in dfs.items():
if 'date' in df.columns:
df['date'] = df['date'].apply(lambda x: f'{str(x)[:4]}.'
f'{str(x)[4:6 if len(str(x)) > 7 else 5]}.{str(x)[-2:]}')
output[ws] = df
writer = pd.ExcelWriter('TestOutput.xlsx')
for ws, df in output.items():
df.to_excel(writer, index=None, sheet_name=ws)
writer.save()
writer.close()
但是输出有一个错误,并且在某些数据中,月份的数字被重写在当天的数字旁边。
和2021.3.32一样,其实我的原始数据中根本不存在这样一个数字
【问题讨论】:
-
如何解释
2021111:2021.1.11或2021.11.1之类的内容? -
值 2021111 应该解析为 2021.01.11 还是 2021.11.01?我认为格式不是明确的。
-
你有什么问题?如果您正在寻求修复错误的帮助,您已经尝试了哪些,哪些没有奏效?请阅读How to Ask。
-
你从哪里得到这个 Excel 文件?使用这种模糊的日期格式,您最好获取一个具有明确日期格式或 Excel 的内置日期/时间数据类型的新文件。