You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已解决:Python Pandas dt.month与Excel月份计算结果存在差异

问题解决:修正Pandas日期解析格式导致的月份统计差异

在处理银行交易数据时,将Value Date和Transaction Date字段转换为datetime格式后,使用dt.month_name()生成的月份名称,与Excel统计的xl_month结果出现显著差异——核心原因是Pandas自动解析日期时混淆了日和月的顺序,导致日期被错误转换,进而影响月份统计结果。

解决步骤:指定明确的日期解析格式

在调用pd.to_datetime()时,通过format参数指定与Excel一致的日期格式(比如常见的DD/MM/YYYY或DD-MM-YYYY),确保日期转换逻辑和Excel对齐。

修改后的代码如下:

data = pd.read_excel("data.xlsx",sheet_name="Sheet1")
data = data.drop(["S No."],axis=1)
    
# 转换datetime时指定匹配Excel的日期格式
date_cols = ["Value Date","Transaction Date"]
# 根据你的实际日期格式调整format参数,示例为DD/MM/YYYY格式
data[date_cols] = data[date_cols].apply(lambda col: pd.to_datetime(col, format="%d/%m/%Y"))   

val_date  = "Value Date"
tnx_date = "Transaction Date"

data["py_Month"] = data[val_date].dt.month_name()
# data["py_Month"] = data[tnx_date].dt.month_name()
   

vc_df = data[['xl_month', 'py_Month']].apply(pd.Series.value_counts)
vc_df

补充说明

  • 如果不确定具体日期格式,也可以使用dayfirst=True参数(优先将日期字符串的第一个数字视为日),但指定明确的format参数能避免歧义,转换更可靠。
  • 验证转换是否正确:可以抽取部分日期数据,对比转换前后的数值,确认月份与Excel的xl_month完全匹配。

内容的提问来源于stack exchange,提问作者Jayit Ghosh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 04:07:17