【问题标题】:Merging Dask dataframes imported from csv files合并从 csv 文件导入的 Dask 数据帧
【发布时间】:2018-03-27 05:45:04
【问题描述】:

我需要导入大型数据集并合并它们。我知道还有其他类似的问题,但我找不到特定于我的问题的答案。似乎使用dask 我能够将大型数据集读入一个数据帧,但我无法将它与另一个数据帧合并。

import dask.dataframe as dd
import pandas as pd

#I have to do this with dask since with pandas I get mem issue and kills the python
ps = dd.read_csv('*.dsv',sep='|',low_memory=False)
mx = dd.read_csv('test.csv',sep='|',low_memory=False)

# this is where I get the error
mg = pd.merge(ps,mx,left_on='ACTIVITY_ID',right_on='WONUM')

ValueError: can not merge DataFrame with instance of type <class 'dask.dataframe.core.DataFrame'>

很明显,它无法将 dask 数据框与 pandas 数据框合并,但我还能怎么做呢?我可以使用 pySpark 或任何其他方法吗?

【问题讨论】:

  • 我对 dask 了解不多,但我认为您只需要 dd.merge() 而不是 pd.merge()

标签: python pandas dataframe pyspark dask


【解决方案1】:

@JohnE 是对的 - Dask 数据帧有一个 merge 方法,它(并非巧合)与 pandas one 非常相似;所以,既然你似乎需要一个内部合并,你应该简单地做:

mg = ps.merge(mx,left_on='ACTIVITY_ID',right_on='WONUM') # how='inner' by default, just as in pandas

Dask from_pandas method 也可能很有用,如果您想将 Dask 数据帧转换为 pandas 数据帧。

【讨论】:

    猜你喜欢
    • 2020-08-21
    • 2018-03-04
    • 2018-08-31
    • 1970-01-01
    • 2018-03-01
    • 2018-09-04
    • 1970-01-01
    • 2018-09-18
    • 2019-01-16
    相关资源
    最近更新 更多