Python 是否可以在方法链/管道中添加变量?

Python 是否可以在方法链/管道中添加变量?,python,pandas,Python,Pandas,我想使用以下内容添加一个变量: N=10 数据帧 {x:np.random.randomN}, .assigny=x*0.5 我知道我可以做以下几点: N=10 df=pd.DataFrame {x:np.random.randomN}, df.assigny=df[x]*0.5 但我希望能够在同一条链中完成此操作。是的,您可以在同一条链中完成此操作 N = 10 df = ( pd.DataFrame({"x": np.random.random(N)})

我想使用以下内容添加一个变量:

N=10 数据帧 {x:np.random.randomN}, .assigny=x*0.5 我知道我可以做以下几点:

N=10 df=pd.DataFrame {x:np.random.randomN}, df.assigny=df[x]*0.5
但我希望能够在同一条链中完成此操作。

是的,您可以在同一条链中完成此操作

N = 10
df = (
    pd.DataFrame({"x": np.random.random(N)})
    .assign(y=lambda d: d['x']*0.5)
)
对于在.assign之前创建或更改的数据帧,请使用lambda some_名称,并保持链接。比如:

N = 10
df = (
    pd.DataFrame({"x": np.random.random(N)})
    .assign(y=lambda d: d['x']*0.5)
    .assign(z=lambda d: d.y * 2)
    .assign(w=lambda d: d.z*0.5)
)

是的,您可以在同一个链中执行此操作

N = 10
df = (
    pd.DataFrame({"x": np.random.random(N)})
    .assign(y=lambda d: d['x']*0.5)
)
对于在.assign之前创建或更改的数据帧,请使用lambda some_名称,并保持链接。比如:

N = 10
df = (
    pd.DataFrame({"x": np.random.random(N)})
    .assign(y=lambda d: d['x']*0.5)
    .assign(z=lambda d: d.y * 2)
    .assign(w=lambda d: d.z*0.5)
)

assign的链式调用不是在创建数据帧的多个副本吗?我建议至少将所有连续的列放入一个单独的赋值调用中,不是吗?这个赋值的链式调用不是在创建数据帧的多个副本吗?我建议至少把所有连续的列放在一个调用中分配,不是吗?