Используйте словарь для переменного числа переменных:
tickers = ['IBM US Equity', 'AAPL US Equity']
df_dict = {}
for num, ticker in enumerate(tickers, start=1):
df_dict[num] = df.loc[ticker]
Затем получить доступ к элементам через df_dict[1]
и т. Д.
Альтернативный способ сформулировать вашу логику - использовать словарь:
df_dict = {num: df.loc[ticker] for num, ticker in enumerate(tickers, 1)}
Причина в вашем коде: pandas
пытается добавить фрейм данных в серию: левая часть df[num] = df.loc[ticker]
- это серия, а правая часть - фрейм данных. Это невозможно, и, достаточно описательно, pandas
жалуется на неправильное количество предметов.