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

如何通过一次赋值从DataFrame的filename列拆分生成year、month、day列

问题:从DataFrame的filename列一次性拆分出year、month、day列

原始DataFrame:

timestamp                filename
2023-12-20 10:09:52.011  2023/12/20/1703056183.log

需求:通过一次赋值操作,从filename列拆分出year、month、day三个新列,最终得到如下结果:

timestamp                year month day  filename
2023-12-20 10:09:52.011  2023 12    20   2023/12/20/1703056183.log

方法1:用str.split拆分赋值

直接按/分割filename列,取前三个部分一次性赋值给新列:

df[['year', 'month', 'day']] = df['filename'].str.split('/', expand=True).iloc[:, :3]

原理:str.split('/', expand=True)把拆分后的内容转为DataFrame,iloc[:, :3]筛选出前3列(对应年、月、日),一步完成多列赋值。

方法2:用str.extract正则提取

如果filename格式固定为YYYY/MM/DD/xxx.log,用正则匹配提取更精准:

df[['year', 'month', 'day']] = df['filename'].str.extract(r'^(\d{4})/(\d{2})/(\d{2})/', expand=True)

原理:正则^(\d{4})/(\d{2})/(\d{2})匹配开头的4位年份、2位月份、2位日期,str.extract将这三个分组转为DataFrame,直接赋值给新列。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 22:13:20