Python 如何合并动态数据帧

Python 如何合并动态数据帧,python,pandas,jupyter-notebook,ipywidgets,Python,Pandas,Jupyter Notebook,Ipywidgets,我正在寻找帮助来添加两个动态生成的数据帧。 两个数据帧都有一个根据intslider ipywidget的输入计算的列。 第三个数据帧应根据上述任何数据帧的更改进行动态更新 将熊猫作为pd导入 从ipywidgets导入交互 @interact(x=(01000,10)) def df_图纸一(x): 数据={“A”:[1,2,3,4,5]} df_one=pd.DataFrame(数据) df_-one['B']=df_-one['A']*x 打印(df_一) @interact(x=(0

我正在寻找帮助来添加两个动态生成的数据帧。 两个数据帧都有一个根据intslider ipywidget的输入计算的列。 第三个数据帧应根据上述任何数据帧的更改进行动态更新

将熊猫作为pd导入
从ipywidgets导入交互
@interact(x=(01000,10))
def df_图纸一(x):
数据={“A”:[1,2,3,4,5]}
df_one=pd.DataFrame(数据)
df_-one['B']=df_-one['A']*x
打印(df_一)
@interact(x=(01000,10))
def df_图纸二(x):
数据={“A”:[6,7,8,9,10]}
df_two=pd.DataFrame(数据)
df_two['B']=df_two['A']*x
打印(df_2)
df_res=df_one+df_two
据我所知,对于当前代码,df_1和df_2是本地的,因此会导致:

名称错误:未定义名称“df_one”

但我不知道如何让他们可以访问。
任何一个指针都会很受欢迎

您可以让您的函数返回两个数据帧,并添加一个
return
语句

import pandas as pd
from ipywidgets import interact


@interact(x=(0, 1000, 10))
def df_draw_one(x):
    data = {"A": [1, 2, 3, 4, 5]}
    df_one = pd.DataFrame(data)
    df_one['B'] = df_one['A'] * x
    print(df_one)
    return df_one


@interact(x=(0, 1000, 10))
def df_draw_two(x):
    data = {"A": [6, 7, 8, 9, 10]}
    df_two = pd.DataFrame(data)
    df_two['B'] = df_two['A'] * x
    print(df_two)
    return df_two


df_one = df_draw_one(1)
df_two = df_draw_two(1)

df_res = df_one + df_two
print(df_res)
另一种方法是将
df_one
df_two
作为全局变量,但这是肮脏的,并不是真正必要的

更新 一个想法是在同一个函数中生成两个小部件,然后一切都变得更容易处理

import pandas as pd
from ipywidgets import interact


@interact()
def df_draw_one(x=(0, 1000, 10), y=(0, 1000, 10)):

    data = {"A": [1, 2, 3, 4, 5]}
    df_one = pd.DataFrame(data)
    df_one['B'] = df_one['A'] * x

    data2 = {"A": [6, 7, 8, 9, 10]}
    df_two = pd.DataFrame(data2)
    df_two['B'] = df_two['A'] * y

    display(df_one)
    display(df_two)
    df_res = df_one + df_two
    display(df_res)
以下是我的结果:


返回
df_one
df_two
未打印。我在某个时候有过那个。需要注意的是,两个数据帧df_res中的x都设置为x(附在前面的注释后面)`A b0 7 7 1 9 9 2 11 11 11 3 13 13 4 15`要更好地理解,您希望两个df都由同一个滑块控制?问得好。不。我希望两个df都可以独立调整,并且df_res应该根据df_one或df_Two的任何单独更改动态更新。我认为如果将两者放在同一个函数中,一切都会变得更容易:)