Python 从另一个数据帧的列中的JSON URL生成数据帧
我试图在另一个名为Data的数据帧中基于Json Url生成一个数据帧Python 从另一个数据帧的列中的JSON URL生成数据帧,python,json,pandas,dataframe,for-loop,Python,Json,Pandas,Dataframe,For Loop,我试图在另一个名为Data的数据帧中基于Json Url生成一个数据帧 import requests import pandas as pd import numpy as np resp = requests.get('https://financialmodelingprep.com/api/v3/company/stock/list') txt = resp.json() Data = pd.DataFrame(txt['symbolsList']) Data = Data.assig
import requests
import pandas as pd
import numpy as np
resp = requests.get('https://financialmodelingprep.com/api/v3/company/stock/list')
txt = resp.json()
Data = pd.DataFrame(txt['symbolsList'])
Data = Data.assign(keymetric= 'https://financialmodelingprep.com/api/v3/company-key-metrics/'+ Data.symbol + '?period=quarter')
Data = Data.assign(profile= 'https://financialmodelingprep.com/api/v3/company/profile/'+ Data.symbol)
Data = Data.assign(financials= 'https://financialmodelingprep.com/api/v3/financial-statement-growth/'+ Data.symbol + '?period=quarter')
我有三个问题:
1) 当我在数据框(“数据”)中下载JSON URL时,输出中没有符号
在“AAPL”下面的代码中
resp = requests.get('https://financialmodelingprep.com/api/v3/company-key-metrics/AAPL?period=quarter')
txt = resp.json()
key= pd.DataFrame(txt['metrics'])
2) 我不知道如何将上面的代码自动化,将数据框“Data”中的“keymetrics”列用作导入
3) 一旦这个过程完成,我将尝试只使用一个数据帧,而不是每个符号使用一个数据帧
keymetrics的预期输出。每一列都应该被划分,而不是全部聚合在一个名为“keymetric”的列中。此代码可以工作
import pandas as pd
import requests
resp = requests.get('https://financialmodelingprep.com/api/v3/company/stock/list')
txt = resp.json()
Data = pd.DataFrame(txt['symbolsList'])
def get_value(symbol):
resp_keymetric = requests.get(f'https://financialmodelingprep.com/api/v3/company-key-metrics/{symbol}?period=quarter')
resp_profile = requests.get(f'https://financialmodelingprep.com/api/v3/company/profile/{symbol}?period=quarter')
resp_financials = requests.get(f'https://financialmodelingprep.com/api/v3/financial-statement-growth/{symbol}?period=quarter')
try:
txt_keymetric = resp_keymetric.json()['metrics'][0]
txt_profile = resp_profile.json()['profile']
txt_financials = resp_financials.json()['growth'][0]
df_keymetric = pd.DataFrame([txt_keymetric])
df_profile = pd.DataFrame([txt_profile])
df_financials = pd.DataFrame([txt_financials])
df = pd.concat([df_keymetric, df_profile, df_financials], axis=1)
return df
except:
pass
result = []
for symbol in Data['symbol'].values.tolist()[:5]:
try:
df = get_value(symbol)
result.append(df)
except:
pass
result_df = pd.concat(result, axis=0)
print(result_df)
keymetrics的预期输出。每一列都应该划分,而不是全部聚合在一个名为“keymetric”的列下 电流输出
它正在工作,但无法正确显示数据。我尝试使用此代码修复它,但它不起作用。你有什么线索吗?没有,我还有同样的格式。它不会将每一列都视为一列,而是将所有内容放在“指标”、“个人资料”、“财务”下作为答案发布