基本的に、次のようなデータフレームの値をフィルタリングしようとしています。ユーザーはシンボルのリストを渡します。たとえば、対応するMarketCapsをリストで返したいと思います。.isin()を使用してシリーズを返し、値をリストに変換できることは知っていますが、これを行うためのより良い方法はないかと思います。
私のリスト内包表記の試みはこれを達成することができるべきではありませんか?
私はこれを試しました:
tickers = pd.read_csv('NASDAQcompanylist.csv')
stocks_list = ['AAPL','GOOG']
print(tickers.head())
x=stocks_list
y= tickers[tickers['Symbol']==stocks_list]['MarketCap']
私も試しました:
y=[tickers['Symbol'][stock]['MarketCap'] for stock in stocks_list]
yの予想出力は次のようになります:(AAPLおよびGOOGの時価総額)
[85436200000000,7001920000000]
データフレームヘッドはこちらです。
Symbol ... Industry
0 ABMD ... Medical/Dental Instruments
1 ATVI ... Computer Software: Prepackaged Software
2 ADBE ... Computer Software: Prepackaged Software
3 AMD ... Semiconductors
4 AGNC ... Real Estate Investment Trusts
Symbol
インデックスとして設定し(意味があり、一意の識別子です)、それを使用して.loc
その行を取得できます。
試してください:
tickers = pd.read_csv('NASDAQcompanylist.csv').set_index('Symbol')
stocks_list = ['AAPL','GOOG']
y=[tickers.loc[stock,'MarketCap'] for stock in stocks_list]
編集:コメントの後、また使用する解決策.isin()
:
y = tickers[tickers.Symbol.isin(stocks_list)]["MarketCap"].tolist()
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加