Zel*_*ny7 6 python pandas dask
一旦我有一个dask数据帧,我如何有选择地将列拉入内存中的pandas DataFrame?假设我有一个N x M数据帧.如何创建一个N xm数据帧,其中m << M并且是任意的.
from sklearn.datasets import load_iris
import dask.dataframe as dd
d = load_iris()
df = pd.DataFrame(d.data)
ddf = dd.from_pandas(df, chunksize=100)
Run Code Online (Sandbox Code Playgroud)
in_memory = ddf.iloc[:,2:4].compute()
Run Code Online (Sandbox Code Playgroud)
ddf.map_partitions(lambda x: x.iloc[:,2:4]).compute()
Run Code Online (Sandbox Code Playgroud)
map_partitions但是在一个不是很大的文件上它很慢.我希望我遗漏一些非常明显的东西.
虽然没有为dask-dataframes实现iloc,但您可以轻松地实现索引,如下所示:
cols = list(ddf.columns[2:4])
ddf[cols].compute()
Run Code Online (Sandbox Code Playgroud)
这有额外的好处,dask立即知道所选列的类型,并且不需要做额外的工作.对于map_partitions变体,dask至少需要检查数据类型产生,因为您调用的函数是完全任意的.
| 归档时间: |
|
| 查看次数: |
2643 次 |
| 最近记录: |