Nic*_*lia 5 python date pandas
我想将我的日期列转换为特定年份的季度指标,比如2018q1或2018q2等.
我的数据看起来像这样,我每季度有一次股票回报(这里没有显示返回列),而且相应的日期,列季度是我想得到的(或类似的东西)
data = [{'date': '3/22/18', 'quarter': 1},{'date': '3/22/18', 'quarter': 1},
{'date': '6/22/18', 'quarter': 3},{'date': '6/22/18', 'quarter': 3},
{'date': '9/22/18', 'quarter': 2},{'date': '9/22/18', 'quarter': 2}]
df = pd.DataFrame(data, index=['s1', 's2','s1','s2','s1','s2'])
date quarter
s1 3/22/13 2013q1
s2 3/24/13 2013q1
s1 6/21/13 2013q2
s2 6/26/13 2013q2
s1 9/21/13 2013q3
s2 9/28/13 2013q3
Run Code Online (Sandbox Code Playgroud)
ALo*_*llz 24
import pandas as pd
df['date'] = pd.to_datetime(df['date'])
df['quarter'] = df['date'].dt.to_period('Q')
date quarter
s1 2018-03-22 2018Q1
s2 2018-03-22 2018Q1
s1 2018-06-22 2018Q2
s2 2018-06-22 2018Q2
s1 2018-09-22 2018Q3
s2 2018-09-22 2018Q3
Run Code Online (Sandbox Code Playgroud)
小智 11
datecolumn.dt.quarter功能会有帮助。
df.date = pd.to_datetime(df.date)
df["Quarter"] = df.date.dt.quarter
Run Code Online (Sandbox Code Playgroud)
to_datetime:
df.date = pd.to_datetime(df.date)
Run Code Online (Sandbox Code Playgroud)
PeriodIndex
df['quarter'] = pd.PeriodIndex(df.date, freq='Q')
date quarter
s1 2018-03-22 2018Q1
s2 2018-03-22 2018Q1
s1 2018-06-22 2018Q2
s2 2018-06-22 2018Q2
s1 2018-09-22 2018Q3
s2 2018-09-22 2018Q3
Run Code Online (Sandbox Code Playgroud)
小智 5
Pandas 有一个方法可以帮助你,它叫做pd.PeriodIndex(monthcolumn, freq= 'Q'). 您可能需要首先使用日期时间库将月份列转换为数据类型。
Pandas 还有一个名为 的方法'to_date',您可以使用该方法将列转换为日期列。
例如:
df["year"] = pd.to_date(df["year"])
Run Code Online (Sandbox Code Playgroud)