Python中如何将.xlsb文件指定列的数字转换为日期?
解决Excel .xlsb中出生日期数字转日期的问题
步骤1:安装依赖库
读取.xlsb格式文件需要专用引擎支持,先安装必要的包:
pip install pandas pyxlsb
步骤2:读取数据并转换日期列
Excel的日期本质是从1900-01-01(Windows默认基准)开始累加的天数,用pandas可直接将这些数字转为标准日期:
import pandas as pd # 读取.xlsb文件,必须指定engine='pyxlsb' df = pd.read_excel('你的文件路径.xlsb', engine='pyxlsb') # 转换"Date of Birth"列为日期格式 df['Date of Birth'] = pd.to_datetime(df['Date of Birth'], origin='1900-01-01', unit='D') # 处理Excel 1900闰年bug(若转换后日期多一天,取消注释下面一行) # df['Date of Birth'] = df['Date of Birth'] - pd.Timedelta(days=1) # 查看转换后的数据 print(df[['Datafile', 'Date of Birth', 'Age', 'Gender']].head())
补充:处理无效值
如果出生日期列存在非数字的无效数据(如空值、字符串),可通过errors='coerce'将其转为NaT(缺失日期标记),避免程序报错:
df['Date of Birth'] = pd.to_datetime(df['Date of Birth'], origin='1900-01-01', unit='D', errors='coerce')
内容的提问来源于stack exchange,提问作者Marry Beuker
相关产品推荐
相关产品推荐

