我有一个for循环,它从alphavantage中为单独的dataframe中的每个货币代码获取外汇数据,并最终使用外汇信息生成多个dataframe。此函数如下所示:
frames = []
for i, j in countrydf.iterrows():
if j['base_currency'] != j['currency_cde']:
CSV = 'https://www.alphavantage.co/query?function=FX_MONTHLY'\
'&from_symbol={0}'\
'&to_symbol={1}'\
'&outputsize=full'\
'&datatype=csv'\
'&apikey={apikey_goes_here}'.format(j['base_currency'], j['currency_cde'])
try:
forex_ = pd.read_csv(CSV, usecols=[0, 4], parse_dates=['timestamp'])
forex.rename(columns={'timestamp': 'date', 'close': 'rate'}, inplace=True)
forex.sort_values(by='date', inplace=True)
forex = forex[(forex['date'] > j['start']) & (forex['date'] < j['end'])]
forex['ctry_cde'] = j['ctry_cde']
frames.append(forex)
except Exception as e:
print('Forex figures for {0} are not present'.format(j['ctry_desc']))
else:
continue
print()这些数据帧被迭代地附加到一个列表中,它给出了一个如下所示的列表

如何将这个数据帧列表转换为一个大的数据帧?我需要像R中的bind_rows()那样工作的东西。
发布于 2021-08-03 19:14:16
pd.concat(your_list)https://stackoverflow.com/questions/68641636
复制相似问题