gpt4 book ai didi

python - 将 datetimeindex 转换为 Qx-YY 格式

转载 作者:太空宇宙 更新时间:2023-11-03 15:58:49 25 4
gpt4 key购买 nike

我有一个 csv 文件,其中的表格看起来像

Date        Open
11/1/2016 59.970001
10/3/2016 57.41
9/1/2016 57.009998
8/1/2016 56.599998
7/1/2016 51.130001
6/1/2016 52.439999
5/2/2016 50
4/1/2016 55.049999

我只需要季度日期行(三月、六月、九月、十二月)并将日期列转换为 Q1-16/Q2-16/Q3-16 等。

代码:

DF_sp = pd.read_csv(shareprice,  index_col = 'Date', parse_dates =[0])
DF_Q= DF_sp.groupby(pd.TimeGrouper('Q')).nth(-1)
DF_Q['Qx-YY'] = ????

最佳答案

您可以使用Series.dt.to_period然后dt.quarterdt.year ,但首先需要转换 Index.to_series :

df = df.groupby(df.Date.dt.to_period('Q')).Open.mean()
print (df)
Date
2016Q2 52.496666
2016Q3 54.913332
2016Q4 58.690000
Freq: Q-DEC, Name: Open, dtype: float64

df.index = 'Q' + df.index.to_series().dt.quarter.astype(str) + '-'
+ df.index.to_series().dt.year.astype(str).str[2:]
print (df)
Date
Q2-16 52.496666
Q3-16 54.913332
Q4-16 58.690000
Name: Open, dtype: float64

另一个解决方案:

df = df.groupby(df.Date.dt.to_period('Q')).Open.mean()
print (df)
Date
2016Q2 52.496666
2016Q3 54.913332
2016Q4 58.690000
Freq: Q-DEC, Name: Open, dtype: float64

y = df.index.strftime('%y')
df.index = df.index.quarter.astype(str)
df.index = 'Q' + df.index + '-' + y
print (df)
Q2-16 52.496666
Q3-16 54.913332
Q4-16 58.690000
Name: Open, dtype: float64

最好是使用 period.Period.strftime - 来自旧文档的链接,但效果很好:

df = df.groupby(df.Date.dt.to_period('Q')).Open.mean()
print (df)
Date
2016Q2 52.496666
2016Q3 54.913332
2016Q4 58.690000
Freq: Q-DEC, Name: Open, dtype: float64

df.index = df.index.strftime('Q%q-%y')
print (df)
Q2-16 52.496666
Q3-16 54.913332
Q4-16 58.690000
Name: Open, dtype: float64

关于python - 将 datetimeindex 转换为 Qx-YY 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40524617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com