2016-08-23 89 views
2

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 

然而,對於現有列指定系列或任何其他可迭代沒有其他方法的工作。

我該如何做到這一點?

回答

1

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