[英]Python - process multiple data frames in a function
我有一個這樣的清單:
symbols = ['AAPL', 'MSFT']
我想使用列表中的值來完成與下面相同的處理。
df_AAPL_income = get_annual_finData_by_symbol('income','AAPL','us')
df_AAPL_balancesheet = get_annual_finData_by_symbol('balancesheet','AAPL','us')
df_MSFT_income = get_annual_finData_by_symbol('income','MSFT','us')
df_MSFT_balancesheet = get_annual_finData_by_symbol('balancesheet','MSFT','us')
MSFT = calculateMetrics('df_'+'MSFT'+'_balancesheet','df_'+'MSFT'+'_income')
MSFT = MSFT.T
MSFT = MSFT.reset_index()
MSFT = MSFT.rename(columns={'breakdown': 'fiscal_year'})
MSFT.insert(0, 'Ticker', 'MSFT')
MSFT = MSFT.set_index(['Ticker','fiscal_year'])
AAPL = calculateMetrics(df_AAPL_balancesheet,df_AAPL_income)
AAPL = AAPL.T
AAPL = AAPL.reset_index()
AAPL = AAPL.rename(columns={'breakdown': 'fiscal_year'})
AAPL.insert(0, 'Ticker', 'AAPL')
AAPL = AAPL.set_index(['Ticker','fiscal_year'])
concate = pd.concat([AAPL, MSFT])
有沒有辦法創建一個函數來從列表中提取值並進行處理?
謝謝!
我會這樣做:
symbols = ['AAPL', 'MSFT']
def process_symbol(symbol: str):
df_income= get_annual_finData_by_symbol('income',symbol,'us')
df_balancesheet = get_annual_finData_by_symbol('balancesheet',symbol,'us')
ret = calculateMetrics(df_balancesheet,df_income)
ret = ret.T
ret = ret.reset_index()
ret = ret.rename(columns={'breakdown': 'fiscal_year'})
ret.insert(0, 'Ticker', symbol)
ret = ret.set_index(['Ticker','fiscal_year'])
return ret
concate = pd.DataFrame(columns = ['Ticker','fiscal_year']) //define it with header you need
for symbol in symbols:
what_i_need = process_symbol(symbol)
concate = pd.concat([concate, what_i_need])
循環遍歷列表應該允許您處理任何長度的列表。 如果有空列表,您應該注意這一點,否則最終可能會得到空變量concate
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.