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 数据框/函数的行为会有所不同呢?