使用Pandas处理CSV文件:转换日期格式并保留第四列零值
解决方案
Excel/Google Sheets 处理方案
假设数据起始单元格为A1,四列对应A、B、C、D:
- A/B/C列(全有效日期):
在目标单元格(如A2)输入公式:
下拉填充整列即可。=TEXT(DATE(RIGHT(A1,4),MID(A1,3,2),LEFT(A1,2)),"DD/MM/YYYY")
注:此公式针对DDMMYYYY格式的无分隔符日期,若你的日期是YYYYMMDD格式,调整为:=TEXT(DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)),"DD/MM/YYYY") - D列(含0值):
在目标单元格(如D2)输入带判断的公式:
下拉填充整列。若日期格式为=IF(D1=0,0,TEXT(DATE(RIGHT(D1,4),MID(D1,3,2),LEFT(D1,2)),"DD/MM/YYYY"))YYYYMMDD,替换为:=IF(D1=0,0,TEXT(DATE(LEFT(D1,4),MID(D1,5,2),RIGHT(D1,2)),"DD/MM/YYYY"))
Python 脚本处理方案
如果用Pandas批量处理CSV/Excel文件:
import pandas as pd # 读取数据(假设无表头,根据实际情况调整header参数) df = pd.read_csv("input_data.csv", header=None) # 定义日期转换函数 def format_date(val): if val == 0: return 0 # 转为8位字符串(补前导零避免短日期问题) date_str = str(val).zfill(8) # 针对DDMMYYYY格式拆分,若为YYYYMMDD则调整切片位置 day, month, year = date_str[:2], date_str[2:4], date_str[4:] return f"{day}/{month}/{year}" # 批量转换所有列 df = df.applymap(format_date) # 导出结果 df.to_csv("output_data.csv", index=False, header=False)
若日期为YYYYMMDD格式,修改函数内的切片逻辑:
year, month, day = date_str[:4], date_str[4:6], date_str[6:]
内容的提问来源于stack exchange,提问作者user10675488
相关产品推荐
相关产品推荐

