亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將帶有股票代碼的列添加到 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條經驗 獲得超5個贊

為什么不改變獲取數據的方式?


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 關注
  • 198 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號