[英]Python - separate dataframes by groups
我正在嘗試下載多個股票數據並自動將其編譯到不同的數據幀中。 到目前為止,我已經能夠將所有信息放入一個數據幀中,然后用股票代碼將其分開。 但是當我嘗試將它分成不同的數據幀時,我的代碼將只包含第一個符號的數據。
我的代碼如下:
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 server,提示每個數據幀應該是唯一的。
除非有一種方法可以在不分離的情況下實現這一目標?
可能這個例子可以幫助你:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.