Python熊猫-不同年份的每周数据分组-重采样

Python熊猫-不同年份的每周数据分组-重采样,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我尝试使用“groupby”将3年的每日数据分组为每周数据 因此,我只想获得与2017年1月至2017年2月的四周相关的数据,然后是2017年2月,以此类推,直到2019年12月 到目前为止,我掌握的代码和原始数据示例如下所示: prices = pd.read_csv("name_of_file.csv", header=1, index_col=0) prices.index = pd.to_datetime(prices.index, format='%d/%m/%Y')

我尝试使用“groupby”将3年的每日数据分组为每周数据

因此,我只想获得与2017年1月至2017年2月的四周相关的数据,然后是2017年2月,以此类推,直到2019年12月

到目前为止,我掌握的代码和原始数据示例如下所示:

prices = pd.read_csv("name_of_file.csv", header=1, index_col=0)    
prices.index = pd.to_datetime(prices.index, format='%d/%m/%Y')    
a=prices.groupby(prices.index.week).head(1)    
c=prices.groupby(prices.index.week).tail(1)
a&c输出2017年和2019年的预期数据,但不是2018年的数据。 使用resample('w').mean()可以很好地工作,但我需要的是准确的数据,而不是它的平均值

                  A        AAL         AAP  
Date                                                                         
2017-01-03  45.265160  44.906567  169.691284  
2017-01-04  45.859093  45.294525  171.083817  
2017-01-05  45.313847  44.508907  170.964462  
2017-01-06  46.725651  44.819275  168.726456  
2017-01-09  46.871700  45.663097  168.626968
您对如何实现上述目标有何想法?
谢谢

我不确定我是否正确理解了你的问题(缺少样本数据也没有帮助)

我认为您需要的是为每列使用不同的函数来聚合每周数据,即为
a
b
列取每周的第一个值,为
c
列取最后一个值

如果是,请尝试以下方法:

prices.groupby([pd.Grouper(freq=“W”))).agg({“a”:“first”、“b”:“first”、“c”:“last”})
(您也可以使用其他聚合方式,如
{“a”:“sum”,“b”:“mean”,…}


UPD。
尝试
df.resample(“W”).first()
df.resample(“7D”).first()

我不确定是否正确理解了您的问题(缺少样本数据也没有帮助)

我认为您需要的是为每列使用不同的函数来聚合每周数据,即为
a
b
列取每周的第一个值,为
c
列取最后一个值

如果是,请尝试以下方法:

prices.groupby([pd.Grouper(freq=“W”))).agg({“a”:“first”、“b”:“first”、“c”:“last”})
(您也可以使用其他聚合方式,如
{“a”:“sum”,“b”:“mean”,…}


UPD。
尝试
df.resample(“W”).first()
df.resample(“7D”).first()

如果不是
mean
那么您希望如何聚合每周数据<代码>总和?如果不是
平均值
,那么您希望如何汇总每周数据<代码>总和?是的,很抱歉。我不想聚合数据,我只想从每日数据、每周数据组中进行选择。假设2017年1月的数据从1月1日到1月2日。。。直到1月31日,我想做的是从这31天中选择/拉取7-1月、14-1月、21-1月和28-1月的数据/价格,以及其他任何一个月的数据/价格。@jimfromtheoffice,在这种情况下,也许可以尝试
df.resample(“W”).first()
df.resample(“7D”)。first()@jimfromtheoffice太好了,很高兴我能帮上忙!是的,很抱歉。我不想聚合数据,我只想从每日数据、每周数据组中进行选择。假设2017年1月的数据从1月1日到1月2日。。。直到1月31日,我想做的是从这31天中选择/拉取7-1月、14-1月、21-1月和28-1月的数据/价格,以及其他任何一个月的数据/价格。@jimfromtheoffice,在这种情况下,也许可以尝试
df.resample(“W”).first()
df.resample(“7D”)。first()@jimfromtheoffice太好了,很高兴我能帮上忙!