Python按组分隔数据帧

2024-09-25 08:31:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试下载多个股票数据,并将其自动编译成不同的数据帧。到目前为止,我已经能够将所有信息放到一个数据框中,然后用股票的符号将其分开。但是,当我试图将其划分为不同的数据帧时,我的代码将只包含第一个符号的数据

我的代码如下:

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,提示每个数据帧都应该是唯一的

除非有一种方法可以在不分离的情况下实现这一点


Tags: of数据代码信息datetimedt符号res
1条回答
网友
1楼 · 发布于 2024-09-25 08:31:36

也许这个例子可以帮助您:

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

相关问题 更多 >