我正在尝试下载多个库存数据并将其自动编译为不同的数据框。到目前为止,我已经能够将所有信息放入一个数据框中,然后用股票代码将其分开。但是,当我尝试将其分为不同的数据框时,我的代码将仅包含第一个符号的数据。
我的下面的代码:
start = dt.datetime(2016,8,17)
end = dt.datetime(2019,12,23)
list_of_tickers = ['DELL', 'GRPN', 'EBS']
p = web.DataReader(list_of_tickers, 'stooq', start, end)
res = p.stack().reset_index()
res.columns.names = [None]
res.index.names = ['ID']
stockdata = res.groupby('Symbols')
for Symbols, Symbols_df in stockdata:
data = pd.DataFrame(Symbols_df)
输出:
1 2014-12-24 GRPN 7.8900 8.0710 7.8700 8.01 4034314.0
3 2014-12-26 GRPN 8.1400 8.4300 7.9400 7.95 17556775.0
5 2014-12-29 GRPN 8.2500 8.4300 8.1000 8.13 10452505.0
7 2014-12-30 GRPN 8.2200 8.3100 8.1200 8.21 9087772.0
... ... ... ... ... ... ...
2754 2019-12-18 GRPN 2.3900 2.4400 2.3800 2.42 4646022.0
2757 2019-12-19 GRPN 2.2750 2.3996 2.2400 2.39 11905805.0
2760 2019-12-20 GRPN 2.2300 2.2900 2.2100 2.28 11355706.0
2763 2019-12-23 GRPN 2.2550 2.2700 2.1700 2.25 6493660.0
但是我想要的输出将是3个不同的数据框,其中每个将是不同股票的信息。
有什么想法吗?
谢谢!
编辑:有关更多信息,将来的目标是将该库存数据上载到sql服务器,提示每个数据框应该唯一。
除非有一种方法可以做到不分离?
答案 0 :(得分:0)
此示例可能可以为您提供帮助:
import pandas as pd
from io import StringIO
data = """
A,B,C
5d8a,N,DELL
5d8b,A,DELL
5d8c,B,GRPN
5d8b,C,GRPN
5d8f,Y,EBS
5d8b,X,EBS
"""
df = pd.read_csv(StringIO(data), sep=',')
for x, y in df.groupby('C'):
print(y)
结果:
#Df1
A B C
0 5d8a N DELL
1 5d8b A DELL
#Df2
A B C
4 5d8f Y EBS
5 5d8b X EBS
#Df3
A B C
2 5d8c B GRPN
3 5d8b C GRPN