达斯达克(Dask)合并在左右方向上的表现不同

时间:2018-09-22 20:28:14

标签: python pandas dask

我想合并两个Dask DataFrames,看来左边的合并有效,而右边的无效:

result_dd = df_dd1.merge(df_dd2, how='left', on=['id','date']).fillna(0)
#result_dd = df_dd2.merge(df_dd1, how='right', on=['id','date']).fillna(0)

第一个起作用,而第二个引起异常:

ValueError: The columns in the computed data do not match the columns 
    in the provided metadata

df_dd1.dtypes是:

date    datetime64[ns]
dtype: object

df_dd2.dtypes是:

date         datetime64[ns]
count        float64
dtype: object

我试图在简单数据上重现该问题,但我不能(在人工示例中,它可以双向工作)。

您知道什么可能是问题吗?

编辑1:

我没有任何NaT / NaN值。至少isnull().sum()对于两个帧都返回0。

框架的头如下(第一个不为空,但头返回空框架):df_dd1.head()

Empty DataFrame
Columns: [date]
Index: []

对于df_dd1.head(npartitions=-1),我得到:

                date
id  
00002           2017-05-08
00002           2017-05-09
00002           2017-05-10
00002           2017-05-11
00002           2017-05-12

还有df_dd2。head():

      date              count
id                                               
0006d 2017-12-27        1.0
0009f 2017-10-28        2.0
000ba 2017-10-28        2.0
000cd 2017-11-14        1.0
00153 2017-12-17        1.0

0 个答案:

没有答案