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

如何为含MMM-YY格式日期列的数据集批量新增年月列?

实现方法:拆分日期列并新增对应值列

我来帮你搞定这个需求!用Python的Pandas库可以高效完成批量处理,下面是具体步骤和代码:

步骤1:准备环境与模拟数据

先确保你已经安装了Pandas,然后导入库并模拟你的原始数据集:

import pandas as pd

# 模拟你的原始数据集
data = {
    'barcode': [11, 22, 33],
    'Jan-18': [100, 500, 900],
    'Feb-18': [150, 600, 1000],
    'Mar-18': [200, 700, 1100],
    'Apr-18': [250, 800, 1200]
}
df = pd.DataFrame(data)

步骤2:批量处理日期列

遍历所有日期列,拆分出月份和年份,然后插入对应的新列(值与原列完全一致):

# 筛选出所有日期列(排除barcode列)
date_columns = [col for col in df.columns if col != 'barcode']

# 逐个处理每个日期列
for col in date_columns:
    # 拆分日期字符串:比如"Jan-18"拆成月份"Jan"和年份后缀"18"
    month_part = col.split('-')[0]
    year_full = f"20{col.split('-')[1]}"  # 把"18"转为完整年份"2018"
    
    # 在原日期列的右侧插入月份列,值和原列相同
    df.insert(df.columns.get_loc(col) + 1, month_part, df[col])
    # 在月份列的右侧插入年份列,值和原列相同
    df.insert(df.columns.get_loc(month_part) + 1, year_full, df[col])

步骤3:查看结果

运行完代码后,打印df就能得到你期望的格式:

print(df)

输出结果示例:

barcode  Jan-18  Jan  2018  Feb-18  Feb  2018  Mar-18  Mar  2018  Apr-18  Apr  2018
0       11     100  100  100     150  150  150     200  200  200     250  250  250
1       22     500  500  500     600  600  600     700  700  700     800  800  800
2       33     900  900  900    1000  1000 1000    1100  1100 1100    1200  1200 1200

备选方案:Excel手动处理(适合小数据集)

如果不想写代码,用Excel也能实现:

  • 假设原日期列Jan-18在B列,先插入两列到B列右侧
  • 第一新列的表头输入=LEFT(B$1,3)得到月份"Jan",列内单元格输入=B1填充值
  • 第二新列的表头输入=20&MID(B$1,5,2)得到年份"2018",列内单元格输入=B1填充值
  • 重复这个操作到所有日期列即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 21:27:50