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

Pandas中将字符串日期列转PeriodIndex并保留后缀的解决方案问询

解决方案

你可以通过自定义函数逐行处理date列,跳过合计行的-值,单独提取日期部分转PeriodIndex后再拼接Total后缀即可,完整实现代码如下:

import pandas as pd

def date_convert(val):
    # 直接返回合计行的特殊占位符
    if val == "-":
        return val
    # 拆分日期部分和后缀内容,仅拆分1次避免后续内容异常
    date_raw, suffix = val.split(maxsplit=1)
    # 转年度Period后拼接后缀返回
    return f"{pd.Period(date_raw, freq='Y')} {suffix}"

df["date"] = df["date"].apply(date_convert)

如果后续需要用日期做聚合、筛选等时间运算,可以额外新增一列存储纯Period类型值,避免来回转换:

# 新增纯年度Period列
df["year"] = pd.to_datetime(df["date"].str.extract(r"^(\d{4})", expand=False), format="%Y").dt.to_period("Y")

执行上述代码后得到的结果和你预期的输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:36:03