使用下拉小部件,从数据框中的一列中选择值,从数据框中的另一列中返回值

时间:2020-05-06 21:01:54

标签: python ipywidgets

下面有一个小样机。在这种情况下,我要从df ['num_wings']中进行选择,然后将该选择传递给新变量。

但是,我真正想要传递给identvar的是df ['num_legs']的值。因此,从一列中选择一个选项,但从另一列中的同一行中检索值。就我而言,我需要能够从列表中选择一个电子邮件地址,以便可以检索到一个很长的唯一标识符字符串。不确定如何到达那里?如何通过从num_wings中选择值来检索num_legs的值?

df = pd.DataFrame({'num_legs': [2, 4, 8, 0],
                   'num_wings': [2, 0, 0, 0],
                   'num_specimen_seen': [10, 2, 1, 8]},
                  index=['falcon', 'dog', 'spider', 'fish'])
df

widg = Dropdown(options = df['num_wings'])
display(widg)

identvar = widg.value

1 个答案:

答案 0 :(得分:0)

如果要基于一个列过滤数据帧并检索另一列的值,则df.loc[df['num_wings'] == widg.value, 'num_legs']应该做您想做的事情。 但是,如果您有多个具有相同翼数的物体,那么您将获取腿的许多行值。

您最好将num_wings设置为数据框的索引,然后调用将简化为df.loc[widg.value, 'num_legs],但这仍然不会产生任何重复。