python - Python - 在一个函数中处理多个数据帧
问题描述
我有一个这样的列表:
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
否则您可能会得到空变量。
推荐阅读
- uniqueidentifier - 识别从 Qualtrics 重定向的唯一访问者
- javascript - React - 无法从 index.js 导出多个文件
- php - 在 wordpress 自动将帖子发布到 facebook 页面中,我没有在 facebook 中获得授权
- c# - User.IsInRole("Admin") 在 _Layout.cshtml 中总是返回 false
- html - 电子邮件 HTML 表格在 Gmail 中正确呈现,但在 Outlook 中失败
- ruby-on-rails - 如何防止完全相同参数的多个条目?
- python - devpi 在访问镜像链接以从 s3 下载时用 & 替换 &
- regex - Oniguruma 模式 - 行尾不起作用
- python - tensorflow(不是 tensorflow-gpu):对 cuInit 的调用失败:未知错误(303)
- python - 如何使用 selenium python 遍历表中的所有 tr 元素