我想从名单列表中创建编号数据框,如下所示:
tickers = [‘IBM US Equity’, ‘AAPL US Equity’]
for num, ticker in enumerate(tickers, start=1):
df[num] = df.loc[ticker]
print(df[num])
df是另一个pandas数据框,其中代码为索引。所以写出以下内容确实给了我想要的结果:
df1 = df.loc[‘IBM US Equity’]
print(df1)
然而,当尝试使用循环时,我收到一条错误消息: “错过的项目数量为4,展示位置意味着1”
我错过了什么?
非常感谢你的帮助!
答案 0 :(得分:1)
使用字典表示可变数量的变量:
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
抱怨项目数量不正确。