简体   繁体   English

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

[英]Python - process multiple data frames in a function

I have a list like this:我有一个这样的清单:

symbols = ['AAPL', 'MSFT']

I want to use the values in the list to complete the same processing as below.我想使用列表中的值来完成与下面相同的处理。

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

Is there a way that I can create a function to pull values from the list and process?有没有办法创建一个函数来从列表中提取值并进行处理?

Thanks!谢谢!

I would do it like this:我会这样做:

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

Looping over the list should allow you to process list with any length.循环遍历列表应该允许您处理任何长度的列表。 If there are empty lists, you should take care of this, you might end up with empty variable concate otherwise.如果有空列表,您应该注意这一点,否则最终可能会得到空变量concate

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM