如何在Pandas中重新采样字典中的数据框(Yahoo数据)?
我想从雅虎财经下载一堆数据,把它们放到一个字典里,然后做各种处理。首先,我想把数据重新采样到“季度最后一个工作日”或者“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)
我就能得到想要的结果,但问题是我想对多个数据框执行这个过程。所以问题出在应用这个函数的循环上。
谢谢
1 个回答
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)