Python 熊猫从每日数据中获得月度开盘收盘?
我有大约700行数据,从2010年1月开始 我试图找出每月的变动情况,即一个月内第一次记录的开放数据减去该月最后一次记录的关闭数据 Groupby允许求和和和平均值,但我不知道如何获得上述两个数据点Python 熊猫从每日数据中获得月度开盘收盘?,python,pandas,Python,Pandas,我有大约700行数据,从2010年1月开始 我试图找出每月的变动情况,即一个月内第一次记录的开放数据减去该月最后一次记录的关闭数据 Groupby允许求和和和平均值,但我不知道如何获得上述两个数据点 df 0 2010-04-01 9464.15 9507.75 1 2010-04-05 9593.55 9698.60 2 2010-04-06 9732.60 9728.20 3 2010-04-07 9778.50 9681.0
df
0 2010-04-01 9464.15 9507.75
1 2010-04-05 9593.55 9698.60
2 2010-04-06 9732.60 9728.20
3 2010-04-07 9778.50 9681.05
4 2010-04-08 9676.70 9520.00
5 2010-04-09 9538.00 9656.50
6 2010-04-12 9661.20 9575.45
7 2010-04-13 9565.05 9483.00
8 2010-04-15 9501.60 9344.60
9 2010-04-16 9345.50 9353.75
10 2010-04-19 9273.85 9302.90
11 2010-04-20 9314.55 9446.10
12 2010-04-21 9477.10 9555.30
13 2010-04-22 9534.05 9623.25
14 2010-04-23 9653.15 9813.30
15 2010-04-26 9890.80 9839.15
16 2010-04-27 9827.00 9756.45
17 2010-04-28 9630.35 9634.90
18 2010-04-29 9652.60 9803.80
19 2010-04-30 9809.40 9870.35
20 2010-05-03 9809.40 9775.50
21 2010-05-04 9816.60 9623.70
22 2010-05-05 9461.35 9581.85
23 2010-05-06 9588.85 9582.00
24 2010-05-07 9426.65 9276.10
25 2010-05-10 9419.50 9656.25
26 2010-05-11 9683.20 9626.10
27 2010-05-12 9640.80 9722.20
28 2010-05-13 9788.35 9773.35
29 2010-05-14 9738.15 9589.05
期望输出
df
Date Open Close
0 2010-APR 9464.15 9634.90 # Close, is from 2010-04-30
1 2010-MAY 9809.40 9589.05 # Close, if from 2010-05-14
如果能再增加两列,如“打开日期”和“关闭日期”,那就太好了。我可以这样做
df["Date] = pd.to_datetime(df["Date"])
gb = df.groupby([df.Date.dt.month])
pd.DataFrame({'Open':gb.Open.nth(0), 'Close':gb.Close.nth(-1)})
请共享@Sid。请共享您的数据集和预期输出。@yatu已更新。很遗憾以前没有发布。请看一看。感谢没有错误,但输出与原始输入相同抱歉按日期分组,而不是按月份分组,它现在将数据分组,但我有一个多年df,我相信解决方案是将所有月份合并在一起。我试图一年一年地分组,即2010年4月连续开盘和收盘,然后是2010年5月,依此类推。仍在尝试,您认为'df[month year]=df[Date].dt.month+df[Date].dt.year会有帮助吗?df[Date]=pd.to_datetimedf[Date]gb=df.groupby[df.Date.dt.year,df.Date.dt.month]pd.DataFrame{'Open':gb.Open.nth0,'Close':gb.Close.nth-1}