如何将序列或序列分配给dask数据帧列?

问题描述:

DASK据帧是follwing:如何将序列或序列分配给dask数据帧列?

In [65]: df.head() 
Out[65]: 
    id_orig id_cliente id_cartao inicio_processo fim_processo score \ 
0  1.0   1.0  1.0    1.0   1.0 1.0 
1  1.0   1.0  1.0    1.0   1.0 1.0 
2  1.0   1.0  1.0    1.0   1.0 1.0 
3  1.0   1.0  1.0    1.0   1.0 1.0 
4  1.0   1.0  1.0    1.0   1.0 1.0 

    automatico canal aceito motivo_recusa variante 
0   1.0 1.0  1.0   1.0  1.0 
1   1.0 1.0  1.0   1.0  1.0 
2   1.0 1.0  1.0   1.0  1.0 
3   1.0 1.0  1.0   1.0  1.0 
4   1.0 1.0  1.0   1.0  1.0 

分配一个整数的工作原理:

In [92]: df = df.assign(id_cliente=999) 

In [93]: df.head() 
Out[93]: 
    id_orig id_cliente id_cartao inicio_processo fim_processo score \ 
0  1.0   999  1.0    1.0   1.0 1.0 
1  1.0   999  1.0    1.0   1.0 1.0 
2  1.0   999  1.0    1.0   1.0 1.0 
3  1.0   999  1.0    1.0   1.0 1.0 
4  1.0   999  1.0    1.0   1.0 1.0 

    automatico canal aceito motivo_recusa variante 
0   1.0 1.0  1.0   1.0  1.0 
1   1.0 1.0  1.0   1.0  1.0 
2   1.0 1.0  1.0   1.0  1.0 
3   1.0 1.0  1.0   1.0  1.0 
4   1.0 1.0  1.0   1.0  1.0 

然而,对于现有列指定系列或任何其他可迭代没有其他方法的工作。

我该如何做到这一点?

DataFrame.assign接受任何标量或任何dd.Series

df = df.assign(a=1) # accepts scalars 
df = df.assign(z=df.x + df.y) # accepts dd.Series objects 

如果你想分配NumPy的阵列或Python列表,那么它可能是你的数据是足够小,适合在RAM中,所以熊猫可能比Dask.dataframe更适合。

您也可以使用普通setitem语法

df['a'] = 1 
df['z'] = df.x + df.y