【发布时间】:2022-10-23 18:14:55
【问题描述】:
我正在尝试构建以下数据框
df = pd.DataFrame(columns=['Year','Revenue','Gross Profit','Operating Profit','Net Profit'])
rep_vals =['year','net_sales','gross_income','operating_income','profit_to_equity_holders']
for i in range (len(yearly_reports)):
df.loc[i] = [yearly_reports[i].x for x in rep_vals]
但是我得到错误按照..“报告”对象没有属性“x”
代码的以下(蛮力版本)有效:
for i in range (len(yearly_reports)):
df.loc[i] = [yearly_reports[i].year,yearly_reports[i].net_sales ,
yearly_reports[i].gross_income, yearly_reports[i].operating_income,
yearly_reports[i].profit_to_equity_holders]
但是,我的问题是我想添加更多列,而且我不想将 yearly_reports 中的每个项目都提取到数据框中,请问如何更有效地迭代我想要的值?
【问题讨论】:
-
getattr(yearly_reports[i], x)? -
yearly_reports是什么? -
请提供Minimal, Reproducible Example,目前,您的代码无法运行,因为我们缺少了解正在发生的事情所需的变量。
-
@Lecdi - 您的解决方案非常出色,谢谢!
-
@Umar.H - 它包含一个名为报告的定制类的列表,通过 API 获取,其中包含一些与财务报表相关的数据。
标签: python pandas list dataframe iteration