为了账号安全,请及时绑定邮箱和手机立即绑定

如何将带有股票代码的列添加到 DataFrame

如何将带有股票代码的列添加到 DataFrame

潇潇雨雨 2022-11-01 16:10:41
我尝试使用 pandas_datareader 提取股票报价。这是我正在使用的代码:import pandas_datareader.data as webimport datetime as dtimport pandas as pdstocks=['asb.pl','plw.pl','ten.pl']df = pd.concat([web.DataReader(stock,'stooq')[:1] for stock in stocks]).reset_index()print(df) 的结果如下所示:        Date    Open    High     Low   Close  Volume0 2020-04-30    3.37    3.39    3.28    3.28  1288601 2020-04-30  449.50  449.50  415.00  425.00   435092 2020-04-30  440.00  444.00  410.50  419.50   23920如何在第一列中添加股票代码,结果如下所示:   Symbol  Date          Open    High     Low   Close  Volume0  asb.pl  2020-04-30    3.37    3.39    3.28    3.28  1288601  plw.pl  2020-04-30  449.50  449.50  415.00  425.00   435092  ten.pl  2020-04-30  440.00  444.00  410.50  419.50   23920
查看完整描述

2 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

您可以使用与创建 DataFrame: 相同的功能pd.concat()。它的第一个参数是要连接的 pandas Series 或 DataFrames 列表,因此stocks应首先将其转换为 Series。您可以使用 来做到这一点pd.Series(),它还需要一个name参数,您可以使用该参数来指定将成为列名的内容。最后,通过axis=1topd.concat()使其成为沿列的连接。

df = pd.concat([pd.Series(stocks, name='Symbol'), df], axis=1)


查看完整回答
反对 回复 2022-11-01
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

为什么不改变获取数据的方式?


import datetime as dt


import pandas_datareader as pdr


stocks = ['asb.pl', 'plw.pl', 'ten.pl']


end = dt.datetime.now()


start = end - dt.timedelta(days=2)

print(start, end="\n\n")


df = pdr.get_data_stooq(symbols=stocks, start=start, end=end).stack("Symbols")

print(df)

输出:


2020-04-29 17:21:12.690845


Attributes           Close    High      Low    Open  Volume

Date       Symbols                                         

2020-04-30 asb.pl     3.28    3.39    3.280    3.37  128860

           plw.pl   425.00  449.50  415.000  449.50   43509

           ten.pl   419.50  444.00  410.500  440.00   23920

2020-04-29 asb.pl     3.32    3.38    3.245    3.25  144000

           plw.pl   449.50  453.00  440.500  441.00   13464

           ten.pl   431.00  435.00  415.500  416.50   24347

我想这也更有效率。


查看完整回答
反对 回复 2022-11-01
  • 2 回答
  • 0 关注
  • 155 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信