有没有办法从datetime变量中提取mm-yyyy (甚至四分之一-yyyy)信息?
我的datetime列是df‘’event‘,它是一个dd-mm-yyyy。我知道我可以从我的变量中提取mm和year,但是有没有一种方法可以把这两者结合起来呢?
我可以将我的数据重新采样到每月的频率,但这样我就只能得到我的兴趣变量的平均值,而我想保留我所有的观察结果。
发布于 2019-02-21 14:52:05
您可以将Series.dt.to_period
用于月份或季度期间:
df = pd.DataFrame({'event':['01-01-2015','02-05-2015','01-08-2016','01-11-2015']})
df['event'] = pd.to_datetime(df['event'], dayfirst=True)
df['months'] = df['event'].dt.to_period('M')
df['quarters'] = df['event'].dt.to_period('Q')
print (df)
event months quarters
0 2015-01-01 2015-01 2015Q1
1 2015-05-02 2015-05 2015Q2
2 2016-08-01 2016-08 2016Q3
3 2015-11-01 2015-11 2015Q4
如果需要自定义格式的字符串,请添加strftime
df['months'] = df['event'].dt.strftime('%m-%Y')
df['quarters'] = df['event'].dt.to_period('Q').dt.strftime('%q-%Y')
print (df)
event months quarters
0 2015-01-01 01-2015 1-2015
1 2015-05-02 05-2015 2-2015
2 2016-08-01 08-2016 3-2016
3 2015-11-01 11-2015 4-2015
https://stackoverflow.com/questions/54800887
复制相似问题