私のコードは
import pandas as pd
import yahoo_fin.stock_info as si
data = {'Symbols': ['ADANIPORTS.NS','ASIANPAINT.NS','AXISBANK.NS','BAJAJ-AUTO.NS','BAJAJFINSV.NS','BAJFINANCE.NS','BHARTIARTL.NS','TCS.NS']}
nifty10= pd.DataFrame(data)
nifty10['Symbols']
for symbol in nifty10['Symbols']:
filename = symbol.strip('.NS') #removing .NS and creating a file name so that I can use symbol as filename
filename = si.get_data(symbol)
最後に、si.get_dataによって返される値を含む4つのオブジェクトADANIPORTS、ASIANPAINT、AXISBANK、TCSが必要です。
シンボルを繰り返し処理し、後で使用するために各シンボル名をファイル名として保存します。次に、APIを介してSymbolを渡します。これにより、複数の行と列を持つデータフレームが返されます。
この出力をデータフレームに保存し、最後の2行目に作成したファイル名/記号を使用してデータフレームに名前を付けます。
しかし、最後の行のデータフレームはファイル名として保存されています。簡単に言えば、Pythonはファイル名を取得していません。この場合、1番目のAsianpaintsの場合はAdaniport、2番目の場合はAdaniportになります。
それがどのように機能したか- vars()[filename] = si.get_data(symbol)
あなたはこのようにそれを行うことができます:
import pandas as pd
import yahoo_fin.stock_info as si
data = {'Symbols': ['ADANIPORTS.NS','ASIANPAINT.NS','AXISBANK.NS','TCS.NS']}
nifty10= pd.DataFrame(data)
for symbol in nifty10['Symbols']:
filename = symbol.strip('.NS')
vars()[filename] = si.get_data(symbol)
しかし、私はそれらを辞書に保管することをお勧めします:
si_data = {}
for symbol in nifty10['Symbols']:
filename = symbol.strip('.NS')
si_data[filename] = si.get_data(symbol)
si_data['AXISBANK'].head()
open high low close adjclose volume ticker
1998-11-27 3.55 3.55 2.71 3.40 0.416105 21000.0 AXISBANK.NS
1998-11-30 3.25 3.30 3.10 3.21 0.392852 132000.0 AXISBANK.NS
1998-12-01 3.29 3.46 3.22 3.39 0.414881 123500.0 AXISBANK.NS
1998-12-02 3.36 3.44 3.32 3.39 0.414881 75500.0 AXISBANK.NS
1998-12-03 3.44 3.49 3.37 3.39 0.414881 102000.0 AXISBANK.NS
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加