首页 > 解决方案 > 使用 Pandas 与 Koalas notna() 的不同结果

问题描述

dtype={"ColA": str}
----------------------------------------------
use_koalas: True
df:
      ColA      ColB    ColC
0        A         0    0.00
1        None      1   12.30
2        C         2   22.20
3        D         1    3.14
type(df['ColA'][1]): <class 'NoneType'>
df[df.notna()]:
      ColA      ColB    ColC
0        A         0    0.00
1        None      1   12.30
2        C         2   22.20
3        D         1    3.14
type(df['ColA'][1]): <class 'NoneType'>
df = df[df.notna()].astype(dtype)
df:
      ColA      ColB    ColC
0        A         0    0.00
1        None      1   12.30
2        C         2   22.20
3        D         1    3.14
type(df['ColA'][1]): <class 'NoneType'>
----------------------------------------------
use_koalas: False
df:
      ColA      ColB    ColC
0        A         0    0.00
1     None         1   12.30
2        C         2   22.20
3        D         1    3.14
type(df['ColA'][1]): <class 'NoneType'>
df[df.notna()]:
      ColA      ColB    ColC
0        A         0    0.00
1      NaN         1   12.30
2        C         2   22.20
3        D         1    3.14
type(df[df.notna()]['ColA'][1]): <class 'float'>
df = df[df.notna()].astype(dtype)
df:
      ColA      ColB    ColC
0        A         0    0.00
1      nan         1   12.30
2        C         2   22.20
3        D         1    3.14
type(df['ColA'][1]): <class 'str'>
----------------------------------------------

我已经为我的 dtype 而不是 str 使用“string”而搞砸了,但有一些下游影响。这是在一个非常大的数据集上,所以理想情况下我不会使用 mask 函数。那么为什么 pandas 和 koalas 数据框/函数的行为会有所不同呢?

标签: pythonpandasdataframepysparkspark-koalas

解决方案


推荐阅读