使用 dask 合并列

Eli*_*man 4 python dataframe pandas dask dask-dataframe

我目前有一个用 pandas 编写的简单脚本,我想将其转换为 dask 数据帧。
在此脚本中,我正在对用户指定列上的两个数据帧执行合并,并尝试将其转换为 dask。

def merge_dfs(df1, df2, columns):
    merged = pd.merge(df1, df2, on=columns, how='inner')
...
Run Code Online (Sandbox Code Playgroud)

如何更改此行以匹配 dask 数据帧?

Sul*_*yev 5

合并dask遵循pandas语法,因此只需用对 的调用替换pandas对 的调用dask.dataframe

import dask.dataframe as dd

def merge_dfs(df1, df2, columns):
    merged = dd.merge(df1, df2, on=columns, how='inner')
# ...
Run Code Online (Sandbox Code Playgroud)

生成的数据帧merged将为 a dask.dataframe,因此可能需要下游计算。如果您将数据保存到文件中,例如使用.to_csv或 with ,这将自动完成.to_parquet

如果您需要数据帧进行某些计算并且数据适合内存,则调用.compute将创建一个pandas数据帧:

pandas_df = merged.compute()
Run Code Online (Sandbox Code Playgroud)