如何从DataFrame的日期列中提取月份名称和年份

sye*_*mfk 4 python datetime dataframe pandas

我有以下 DF

45    2018-01-01
73    2018-02-08
74    2018-02-08
75    2018-02-08
76    2018-02-08
Run Code Online (Sandbox Code Playgroud)

我想以以下格式以简单的方式提取月份名称和年份:

45    Jan-2018
73    Feb-2018
74    Feb-2018
75    Feb-2018
76    Feb-2018
Run Code Online (Sandbox Code Playgroud)

我使用了df.Date.dt.to_period("M")which 返回"2018-01"格式。

小智 6

首先使用将列转换为日期时间数据类型

sales_df['Date'] = pd.to_datetime(sales_df['Date'])
Run Code Online (Sandbox Code Playgroud)

那么你可以做

sales_df['Month'] = sales_df['Date'].dt.month_name(locale='English')
Run Code Online (Sandbox Code Playgroud)


Pra*_*iel 5

将日期从对象转换为实际日期时间并使用 dt 访问您需要的内容。

import pandas as pd

df = pd.DataFrame({'Date':['2019-01-01','2019-02-08']})

df['Date'] = pd.to_datetime(df['Date'])

# You can format your date as you wish
df['Mon_Year'] = df['Date'].dt.strftime('%b-%Y')

# the result is object/string unlike `.dt.to_period('M')` that retains datetime data type.

print(df['Mon_Year'])

Run Code Online (Sandbox Code Playgroud)