如何将MM/DD/YYYY格式的Object DataFrame转换为DDMMYYYY格式?
将DataFrame中Object类型的日期从MM/DD/YYYY格式转为DDMMYYYY格式
需求说明
需将DataFrame里Order_Date列的日期(原格式为MM/DD/YYYY,含时间时先提取纯日期部分)转换为DDMMYYYY格式,最终输出为包含该格式字符串的列表形式。
现有代码
import string import pandas as pd csv_file = 'export.csv' df = pd.read_csv(csv_file, index_col=False) df["Date1"] = df["Order_Date"].str.split(" ").str.get(0) df["Date"] = df["Date1"].str.split("/") zz= df["Date"] print(zz)
当前输出
0 [11, 01, 2022] 1 [11, 01, 2022] 2 [11, 01, 2022] 3 [11, 01, 2022] 4 [11, 01, 2022] ... 2768 [11, 22, 2022] 2769 [11, 22, 2022] 2770 [11, 22, 2022] 2771 [11, 22, 2022] 2772 [11, 22, 2022] Name: Date, Length: 2773, dtype: object
期望输出
0 [01112022] 1 [01112022] 2 [01112022] 3 [01112022] 4 [01112022] ...
解决方案
方法1:基于现有代码修改
直接对拆分后的日期列表重组拼接,快速得到目标格式:
import string import pandas as pd csv_file = 'export.csv' df = pd.read_csv(csv_file, index_col=False) df["Date1"] = df["Order_Date"].str.split(" ").str.get(0) # 拆分后提取日、月、年拼接,再包装为列表 df["Date"] = df["Date1"].str.split("/").apply(lambda x: [x[1] + x[0] + x[2]]) zz = df["Date"] print(zz)
方法2:使用Pandas日期类型处理(更稳妥)
利用Pandas的日期解析功能,先将字符串转为标准日期类型,再格式化输出,能自动处理日期合法性问题:
import pandas as pd csv_file = 'export.csv' df = pd.read_csv(csv_file, index_col=False) # 提取纯日期部分 df["Date1"] = df["Order_Date"].str.split(" ").str[0] # 解析为日期类型后格式化为DDMMYYYY,再包装为列表 df["Date"] = pd.to_datetime(df["Date1"], format="%m/%d/%Y").dt.strftime("%d%m%Y").apply(lambda x: [x]) zz = df["Date"] print(zz)
内容的提问来源于stack exchange,提问作者Marco F
相关产品推荐
相关产品推荐

