在Python中巧妙地从df创建几个输入框



我正在尝试创建一个基于Excel电子表格的输入表单。我使用电子表格创建了一个数据框架(其中有30个"产品")。列出)我需要为列表上的每个产品创建一系列输入框。目前我用一种非常低效的方式来做这件事:

product_1 = (ipw.Dropdown(options=barrier_list['Product Name'],
value = barrier_list['Product Name'][0],
description= barrier_list['ISIN'][0],
disabled=False,
layout = {'width':'350px'}))
product_1.style.description_width = 'initial'
units_1 = (ipw.IntText(value=for_table['Units'][0],
description='Units:',
disabled=False,
layout = {'width':'200px'}
))
price_1 = (ipw.FloatText(value=for_table['Price'][0],
description='Price:',
disabled=False,
layout = {'width':'200px'}
))
value_1 = (ipw.FloatText(value=0,
description='Value:',
disabled=False,
layout = {'width':'200px'}
))
HBox_1 = ipw.HBox([product_1,units_1,price_1, value_1])

正好创建了输入表一行所需要的内容。为了执行下一行,我再次复制这段代码,并将所有的[0]更改为[1]。这是30倍

我知道这是一种糟糕的方法,但是我不知道如何使用循环来创建30行(每个product 1行)的输入框。

指导奏效了。我的解决方案很简单,就像这样:

dd_list = []
for i in range(len(barrier_list['Product Name'])):
dropdown = widgets.Text(description=barrier_list['ISIN'][i],
value=barrier_list['Product Name'][i])
dd_list.append(dropdown)
VBox1 = widgets.VBox(dd_list)

VBox1

只需要创建其他盒子并添加到VBox。

最新更新