如何为含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
相关产品推荐
相关产品推荐

