如何将mm/yy转换为日期格式?



我有订单日期列像2009-01-28

我想提取01/09作为日期,因为。我画个线形图。所以日期顺序很重要

我申请

data['M/Y'] = pd.to_datetime(data['Order Date']).apply(lambda d: d.strftime('%m/%y')) 

但是它返回对象数据类型

这一步怎么做?

使用toolist将numpy或pandas值转换为本地python值。然后可以使用.replace('-','/')方法将'-'转换为'/',然后使用字符串切片获得年份的最后数字,如year = '2021'[2:]# 21。

我只是回答,因为我不能评论。

对于pandas系列,任何字符串对象都被视为object。您可以按原始日期字符串排序,并在其旁边创建另一列,作为提取的%m/%Y字符串,使用如下所示:

import pandas as pd
from datetime import datetime
# Sample dataframe
data = pd.DataFrame(data={"original_date": ["2021-01-30", "2018-05-05"]})
# Your code should do this, replace "original_date" with your column name
data["M/Y"] = data["original_date"].apply(
lambda x: (
(
f"{datetime.strptime(x,'%Y-%m-%d').month}/"
+ f"{datetime.strptime(x,'%Y-%m-%d').year}"[-2:]
)
)
)
data.sort_values(by="original_date", ascending=False, inplace=True)

p。S:如果你用datetime作为original_date的列类型,那么用lambda x : f"{x.month}/"+f"{x.year}"[-2:]就更容易了

或者,如果您想使用一年中月份的顺序来绘制,我建议使用Y/M对字符串进行快速排序。

最新更新