- 我正在运行一个for循环,对多项数据集中的每项进行回归。
- 我想输出在
np.arrange
中设置的参数的最大收入点处的价格点。 - 下面是我正在使用的代码:
upc_modelfit_summary = []
upcs = df['upc'].unique()
for x in upcs:
df_upc = df[(df['upc'] == x)]
max_val = df_upc['arp_np'].max()
min_val = df_upc['arp_np'].min()
price = np.arange(min_val, max_val, 0.1)
cost = .50
model = ols("units_np ~ arp_np", data=df_upc).fit()
quantity = []
revenue = []
for i in price:
demand = model.params[0] + (model.params[1] * i)
quantity.append(demand)
revenue.append((i-cost) * demand)
profit = pd.DataFrame({"Price": price, "Revenue": revenue, "Quantity": quantity, "UPC": x})
max_val = profit.loc[(profit['Revenue'] == profit['Revenue'].max())]
upc_modelfit_summary.append(
{
'Price': max_val['Price'],
'Revenue': max_val['Revenue'],
'Quantity': max_val['Quantity'],
'UPC': max_val['UPC']
})
a= pd.DataFrame(upc_modelfit_summary)
a
我想创建一个数据框,编译价格,收入,数量和upc的每一个项目是循环。
由于某种原因,当将其转换为 Dataframe 时,它会给我每个单元格值的值、名称和数据类型(见图)
有没有更好的方法来实现这个目标?理想情况下,最终结果将是一个可以以某种方式导出的df。
Price Revenue Quantity UPC
0 4 4.49 Name: Price, dtype: float64 4 3.99 Name: Revenue, dtype: float64 4 1.0 Name: Quantity, dtype: float64 4 00-28400-04330 Name: UPC, dtype: object
1条答案
按热度按时间lvjbypge1#
问题是你要把整个 Dataframe
max_val[Col]
添加到upc_modelfit_summary
字典中,而不仅仅是值。