将 NA 填充为字符串 0,然后填充为 int 恢复为 float

Filling NAs to string 0 and then to int reverts to float

我在这里想要的是 Nans 最终是整数值。由于我的数据集有 1000 列,我不能只更改几列以使它们成为整数,当我在 Dask 中尝试 df = df.astype('int') 时,在将值更改为 0 浮点数之后,无论出于何种原因,它都没有工作。 `

虽然下面的值在 Pandas 中已全部恢复为浮点数;在 Dask 中,只有一些列的零值恢复为浮点数。我想如果我能在 Pandas 中解决这个问题,那么它可能也会在 Dask 中解决它(祈祷)。

import pandas as pd
import numpy as np

data = [['tom', 10, 15000], ['nick', 15, 12000], ['juli', 5, 20000]]
  
# Create the pandas DataFrame
df = pd.DataFrame(data, columns = ['Name', 'Age', 'salary'])

import numpy as np
df = df.replace(5, np.nan)
df = df.replace(12000, np.nan)

expanded = df.replace(np.nan, '0')
expanded = expanded.replace('0', 0)
expanded

IIUC:

from dask.dataframe import from_pandas
ddf = from_pandas(df, npartitions=2)

out = ddf.select_dtypes('number').fillna(0).astype('int64')

输出:

>>> out.compute()
   Age  salary
0   10   15000
1   15       0
2    0   20000