如何在另一个 ipywidget 交互函数中正确使用带有 dataframe 参数的函数

问题描述 投票:0回答:1
from ipywidgets import interact
import ipywidgets as widgets
import pandas as pd

我有一个数据框如下:

df = pd.DataFrame(index = [1,2,3], 
                   data = {'col1':[2,3,5],"col2":[2,5,2], "col3":[2,4,3]})

此外,我还有一个函数

df_plot
可以绘制线图。通过数字参数我选择要绘制的列。

def df_plot(df, num):
    df.iloc[:,num].plot()

尝试创建另一个函数

f_interact
,它显示下拉列表,我可以在其中选择要绘制的列。
df_plot
用于
f_interact

def f_interact():
    widgets.interact(df_plot, num=[0,1,2])

我收到以下错误

enter image description here

我很可能没有正确构建设置(函数和参数)。 我查看了 ipywidgets 文档,但找不到合适的示例。 有人可以建议吗。

python pandas ipywidgets
1个回答
0
投票

你把事情搞得太复杂了。喻不需要第二个功能。改为这样做:

from ipywidgets import interact
import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame(index=[1, 2, 3], 
                  data={'col1': [2, 3, 5], "col2": [2, 5, 2], "col3": [2, 4, 3]})

def df_plot(num):
    plt.figure() 
    df.iloc[:, num].plot(kind='line', title=f"Column {num + 1}")
    plt.show()

interact(df_plot, num=(0, len(df.columns) - 1))

这给出了

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.