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

如何用Pandas拆分DataFrame列并转换日期格式?

嘿,这个需求我之前处理过,很容易搞定!咱们一步步来:

步骤1:拆分WO No列(你的初始代码已经没问题)

你用df.pop('WO No').str.split('-', expand=True)拆分列的方法是完全正确的,这会把原WO No列从DataFrame中移除,同时拆分出CO、WO Date、WO ID三列——比如OR-20180422-12345会被拆成OR、20180422、12345。

步骤2:转换WO Date为dd/mm/yyyy格式

拆分后的WO Date是纯数字字符串(比如20180422),我们需要先把它转换成datetime对象,再格式化为你要的dd/mm/yyyy格式。这里推荐指定format参数来确保转换准确,避免Pandas自动推断时出错:

import pandas as pd

# 示例DataFrame
df = pd.DataFrame({'WO No': ['OR-20180422-12345', 'XY-20240115-54321']})

# 拆分WO No列
df[['CO','WO Date','WO ID']] = df.pop('WO No').str.split('-', expand=True)

# 转换日期格式:先转datetime,再格式化为dd/mm/yyyy字符串
df['WO Date'] = pd.to_datetime(df['WO Date'], format='%Y%m%d').dt.strftime('%d/%m/%Y')

# 查看结果
print(df)

运行后WO Date列的值就会变成22/04/2018、15/01/2024这样的格式啦。

额外说明:如果需要保留datetime类型(方便后续日期操作)

如果你只是希望显示的时候是dd/mm/yyyy,但实际存储还是datetime对象(方便做日期筛选、计算等操作),可以不用strftime,而是设置Pandas的显示选项:

pd.options.display.date_format = '%d/%m/%Y'
# 仅转换为datetime对象即可,不用转成字符串
df['WO Date'] = pd.to_datetime(df['WO Date'], format='%Y%m%d')

这样在打印或查看DataFrame时,日期会以dd/mm/yyyy显示,但列的类型还是datetime,完全不影响后续的日期相关操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:42:25