Python-在一个函数中处理多个数据帧

Python-在一个函数中处理多个数据帧,python,Python,我有这样一份清单: symbols = ['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 = c

我有这样一份清单:

symbols = ['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])
我想使用列表中的值完成与下面相同的处理

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']
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

您是如何实现这一点的?有什么错误吗?