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

Pandas拆分固定宽度列并转置生成二维数组的实现问题

问题1:按固定宽度拆分Year/Period列

不需要用str.split(),有两种更适配固定宽度拆分的实现方案:

  • 方案1:字符串切片(适合规则固定无变化的场景)
    你当前Year固定占前4位,剩余内容为Period,直接按位置截取即可:
# 截取前4位为Year,第4位之后为Period
df['Year'] = df['Year/Period'].str[:4]
df['Period'] = df['Year/Period'].str[4:]
# 可选:删除原列、调整列顺序
df = df.drop(columns=['Year/Period'])[['Year', 'Period', 'PurchDoc']]
  • 方案2:正则提取(适配性更强,避免格式波动出错)
    通过正则匹配字段规则,自动提取对应值,容错率更高:
# 匹配FY+两位数字作为Year,P+两位数字作为Period
df[['Year', 'Period']] = df['Year/Period'].str.extract(r'^(FY\d{2})(P\d{2})', expand=True)
df = df.drop(columns=['Year/Period'])[['Year', 'Period', 'PurchDoc']]
问题2:转置生成二维透视表

用Pandas的pivot透视方法即可直接实现你要的行转列效果:

# 以Year为行索引,Period为列名,PurchDoc为填充值
result_df = df.pivot(index='Year', columns='Period', values='PurchDoc').reset_index()

生成的result_df结构和你给出的示例完全一致,后续数值类型转换、空值处理你可以按自己需求调整。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:36:00