如何在Pandas中重新采样数据帧字典(Yahoo Data)?

时间:2014-10-16 22:15:17

标签: python pandas grouping dataframe

我想从雅虎财经中下载一堆数据,把它放在一本字典中并用它做各种各样的事情。从重新采样到“季度的最后一天”或“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循环中。

谢谢

1 个答案:

答案 0 :(得分:2)

在python 3中,没有字典的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)