Python 如何在Pandas中对数据帧字典(Yahoo数据)进行重采样?

Python 如何在Pandas中对数据帧字典(Yahoo数据)进行重采样?,python,pandas,grouping,dataframe,Python,Pandas,Grouping,Dataframe,我想从yahoo finance下载一堆数据,放到字典里,然后用它做各种各样的事情。从重新采样到“季度最后一个B日”或“BQ-业务季度结束频率”开始: import pandas as pd import pandas.io.data as pdd x = pdd.DataReader('VBK', data_source='yahoo', start='2004/1/30') y = pdd.DataReader('IWM', data_source='yahoo', start='2000

我想从yahoo finance下载一堆数据,放到字典里,然后用它做各种各样的事情。从重新采样到“季度最后一个B日”或“BQ-业务季度结束频率”开始:

import pandas as pd
import pandas.io.data as pdd

x = pdd.DataReader('VBK', data_source='yahoo', start='2004/1/30')
y = pdd.DataReader('IWM', data_source='yahoo', start='2000/5/26')
z = {'x': x, 'y': y}

conversion = {'Open': 'first', 'High': 'max', 'Low': 'min', 'Close': 'last', 'Volume': 'sum', 'Adj Close': 'last'}
for key, df in z.iteritems():
    df.resample('BQ', how=conversion)
但是,什么也没发生。但是,如果我这样做:

 test = x.resample('BQ', how=conversion)
我得到了期望的结果,但问题是我想对多个数据帧执行此过程。因此,问题在于应用该函数的for循环中


感谢您在Python3中,没有字典的
iteritems
方法。您也没有保存重采样方法的输出

这对我很有用:

import pandas as pd
import pandas.io.data as pdd

x = pdd.DataReader('VBK', data_source='yahoo', start='2004/1/30')
y = pdd.DataReader('IWM', data_source='yahoo', start='2000/5/26')
z = {'x': x, 'y': y}

conversion = {
    'Open': 'first', 
    'High': 'max', 
    'Low': 'min', 
    'Close': 'last', 
    'Volume': 'sum', 
    'Adj Close': 'last'
}

for key, df in z.items():
    z[key] = df.resample('BQ', how=conversion)

@我在原来的问题上犯了一个大错误。然而,问题依然存在。问题在于这篇文章中的迭代。你为什么这么说?。重采样对单个数据帧有效这一事实难道不证明你的观点无效吗?在python 3中,我得到的错误是字典没有
iteritems
方法。@PaulH谢谢你的输入。但是我可以用和dict相同的转换来运行重采样,而且效果很好。但是对于一个单独的df。它一直是这样使用的,永远看这个食谱,当我纠正你的循环时,它对我有效。你凭什么认为它不起作用?您没有将结果重新分配回
z
,因此整个过程将非常短暂。您可以将最后一行替换为
z[key]=df.resample('BQ',how=conversion)
以保存结果。