CSV文件日期列拆分:如何将YYYY-MM-DD格式拆分为年、月、日列?
嘿,这个需求太常见了!我来给你分享几个不同工具下的实现方法,你可以根据自己的使用场景来选:
用 Excel/Google Sheets 实现
如果你用的是表格工具,有两种简单的方式:
方法1:用日期函数提取
假设你的「Date」列在A列,想在B、C、D列分别生成年、月、日:
- 在B2单元格输入公式:
=YEAR(A2),按回车后下拉填充整列,就能得到所有年份 - 在C2单元格输入公式:
=MONTH(A2),下拉填充得到月份 - 在D2单元格输入公式:
=DAY(A2),下拉填充得到日期
方法2:数据分列(直接拆分文本)
因为你的日期格式是固定的YYYY-MM-DD,用分列功能更高效:
- 选中整个「Date」列
- 点击顶部菜单栏的「数据」→「分列」
- 第一步选择「分隔符号」,点击下一步
- 勾选「其他」,输入
-作为分隔符,点击下一步 - 可以给每一列设置数据格式(比如选「常规」或「数值」),最后点击完成,就能直接拆成三列
用 Python Pandas 实现
如果是用代码处理CSV,Pandas是最方便的选择:
首先先读取你的CSV文件:
import pandas as pd df = pd.read_csv('你的文件名.csv')
方法1:直接拆分文本列
如果「Date」列是字符串类型,直接按-拆分:
# 拆分后生成三列,直接添加到DataFrame里 df[['YEAR', 'MONTH', 'DAY']] = df['Date'].str.split('-', expand=True) # 如果需要把这三列转成整数类型(默认是字符串) df[['YEAR', 'MONTH', 'DAY']] = df[['YEAR', 'MONTH', 'DAY']].astype(int)
方法2:用日期处理函数(更严谨)
先把「Date」列转成日期类型,再提取年、月、日,这样能避免一些格式不规范的问题:
# 把字符串列转成日期类型 df['Date'] = pd.to_datetime(df['Date']) # 分别提取年、月、日 df['YEAR'] = df['Date'].dt.year df['MONTH'] = df['Date'].dt.month df['DAY'] = df['Date'].dt.day
用 SQL 实现
如果你的CSV已经导入到数据库里(比如MySQL、PostgreSQL),可以用内置的日期函数提取:
查询时提取
以MySQL为例,假设表名是your_table,日期列是date_col:
SELECT YEAR(date_col) AS YEAR, MONTH(date_col) AS MONTH, DAY(date_col) AS DAY, -- 这里加上你需要的其他列 FROM your_table;
新增列并填充数据
如果想直接在表中新增三列并填充数据:
-- 先新增三个整数类型的列 ALTER TABLE your_table ADD COLUMN YEAR INT, ADD COLUMN MONTH INT, ADD COLUMN DAY INT; -- 填充数据 UPDATE your_table SET YEAR = YEAR(date_col), MONTH = MONTH(date_col), DAY = DAY(date_col);
这些方法应该能覆盖大多数场景啦,要是你用的是其他工具,随时说,我再补充对应的方案~
内容的提问来源于stack exchange,提问作者steve
相关产品推荐
相关产品推荐

