簡體   English   中英

Python - 按組分離數據幀

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM