【问题标题】:Accessing yahoo finance 104 stocks closing price but it appends the data in a single row instead of column访问 yahoo Finance 104 股票收盘价,但它将数据附加在单行而不是列中
【发布时间】:2021-08-10 12:13:09
【问题描述】:

tickers = "GNA.BO PDMJEPAPER.BO MEGH.BO REFEX.BO GULPOLY.BO TRIVENI.BO TCI.BO NUCLEUS.BO 
SHILPAMED.BO JUBILANT6.BO TITANBIO.BO INDOBORAX.BO POLYPLEX.BO MAZDALTD.BO KSE.BO RAJGLOWIR.BO 
MANORG.BO TATAMETALI.BO HIL.BO BAJAJST.BO TINPLATE.BO SESHAPAPER.BO DECCANCE.BO GESHIP.BO 
ESTER.BO DIAMINESQ.BO DENORA.BO UNICK.BO LASA.BO APLLTD.BO BESGALASM.BO KPRMILL.BO 
INSECTICID.BO SAREGAMA.BO WELCORP.BO KRITIIND.BO PRECWIRE.BO UNIDT.BO RACLGEAR.BO FINOLEXIND.BO 
CEATLTD.BO NATPEROX.BO BEPL.BO KNRCON.BO DAAWAT.BO DCBBANK.BO FIEMIND.BO VOLTAMP.BO ZENTEC.BO K 
EC.BO NAVINFLUOR.BO BALAJITELE.BO INDNIPPON.BO GMDCLTD.BO POLYMED.BO VIKRAMTH.BO SEAMECLTD.BO 
IPCALAB.BO PLASTIBLEN.BO ICIL.BO JBCHEPHARM.BO TRANSPEK.BO PHILIPCARB.BO FERMENTA.BO 
DHARAMSI.BO INDIANHUME.BO HFCL.BO METROGLOBL.BO OAL.BO PRICOLLTD.BO HGS.BO RTSPOWR.BO TIGLOB.BO 
MIRZAINT.BO HMVL.BO CGVAK.BO DHPIND.BO WPIL.BO MALLCOM.BO VIJSOLX.BO RUBFILA.BO ASAHISONG.BO 
HINDCOMPOS.BO CONTROLPR.BO EVERESTIND.BO PIXXTRANS.BO APCL.BO LGBBROSLTD.BO AMRUTANJAN.BO 
GSFC.BO PNBHOUSING.BO RVNL.BO IRCON.BO HATHWAY.BO MAHSEAMLES.BO GMRINFRA.BO AMBIKCO.BO CCL.BO 
MINDAIND.BO RAMCOIND.BO TNPETRO.BO PCJEWELLER.BO AHLEAST.BO SHARDA.BO ",

import yfinance as yf
import pandas as pd
tickerlist = tickers
df_list = list()
for tick in tickerlist:
    
    data = yf.download(tick,  period='1d', threads='true')
    data.drop(['Open','High','Low','Volume','Adj Close'], inplace=True, axis=1)
    data = data.copy()
    
    data['ticker'] = tick  
    
    df_list.append(data)    
    
    

df = pd.concat(df_list)
df = df.T
# save to csv
df.to_csv('ticker.csv', header=True, index=True)    
print(df_list)

生成的 csv 文件有 [1 行 x 105 列]] resulting file image 我不想转置它,因为我想在之后的列之间进行计算,这使它变得更加困难?

【问题讨论】:

  • 您的意思是要使用长格式而不是宽格式?
  • 我希望每个股票数据都附加到新行中,而不是单行。

标签: python pandas stock yfinance


【解决方案1】:

对于长格式的数据采集,我觉得很容易准备一个空数据框,依次获取股票数据,然后添加到空数据框中。

import yfinance as yf
import pandas as pd

tickers = "GNA.BO PDMJEPAPER.BO MEGH.BO REFEX.BO GULPOLY.BO TRIVENI.BO TCI.BO NUCLEUS.BO" 
tickerlist = tickers.split(' ')
df_list = pd.DataFrame()

for tick in tickerlist:
    data = yf.download(tick,  period='1d', threads='true')['Close'].to_frame()
    data['ticker'] = tick
    data.reset_index(inplace=True)
    df_list = df_list.append(data, ignore_index=True)    

print(df_list)

Date    Close   ticker
0   2021-08-10  680.500000  GNA.BO
1   2021-08-10  41.650002   PDMJEPAPER.BO
2   2021-08-10  130.000000  REFEX.BO
3   2021-08-10  246.699997  GULPOLY.BO
4   2021-08-10  165.500000  TRIVENI.BO
5   2021-08-10  428.450012  TCI.BO
6   2021-08-10  680.000000  NUCLEUS.BO

【讨论】:

  • 感谢您的回答。这简直太完美了。
  • 为了获取大量的股票,你需要采取措施,因为有些股票可能没有数据,但我认为这是基本的形式。如果我的回答对你有帮助,请考虑采纳为正确答案
猜你喜欢
  • 2023-01-27
  • 2011-01-17
  • 2021-12-12
  • 1970-01-01
  • 2018-01-02
  • 2021-12-20
  • 2020-07-08
  • 1970-01-01
  • 2020-09-15
相关资源
最近更新 更多