如何使用Python 对缺失值进行处理

如何使用Python 对缺失值进行处理,第1张

录入的时候可以直接省略不录入分析的时候也一般剔除这样的样本。但也有替换的方法,一般有:均值替换法(meanimputation),即用其他个案中该变量观测值的平均数对缺失数据进行替换,但这种方法会产生有偏估计,所以并不被推崇。个别替换法(singleimputation)通常也被叫做回归替换法(regressionimputation),在该个案的其他变量值都是通过回归估计得到的情况下,这种方法用缺失数据的条件期望值对它进行替换。这虽然是一个无偏估计,但是却倾向于低估标准差和其他未知性质的测量值,而且这一问题会随着缺失信息的增多而变得更加严重。多重替代法(multipleimputation)(Rubin,1977)。?它从相似情况中或根据后来在可观测的数据上得到的缺省数据的分布情况给每个缺省数据赋予一个模拟值。结合这种方法,研究者可以比较容易地,在不舍弃任何数据的情况下对缺失数据的未知性质进行推断(LittleandRubin,1987ubin,1987,1996)。

null/None/NaN

null经常出现在数据库中

None是Python中的缺失值,类型是NoneType

NaN也是python中的缺失值,意思是不是一个数字,类型是float

在pandas和Numpy中会将None替换为NaN,而导入数据库中的时候则需要把NaN替换成None

找出空值

isnull()

notnull()

添加空值

numeric容器会把None转换为NaN

In [20]: s = pd.Series([1, 2, 3])

In [21]: s.loc[0] = None

In [22]: s

Out[22]:

0NaN

12.0

23.0

dtype: float641234567891012345678910

object容器会储存None

In [23]: s = pd.Series(["a", "b", "c"])

In [24]: s.loc[0] = None

In [25]: s.loc[1] = np.nan

In [26]: s

Out[26]:

0None

1 NaN

2 c

dtype: object123456789101112123456789101112

空值计算

arithmetic operations(数学计算)

NaN运算的结果是NaN

statistics and computational methods(统计计算)

NaN会被当成空置

GroupBy

在分组中会忽略空值

清洗空值

填充空值

fillna

DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)

参数

value : scalar, dict, Series, or DataFrame

method : {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, default None(bfill使用后面的值填充,ffill相反)

axis : {0 or ‘index’, 1 or ‘columns’}

inplace : boolean, default False

limit : int, default None

downcast : dict, default is None

返回值

filled : DataFrame

Interpolation

replace

删除空值行或列

DataFrame.dropna(axis=0, how=’any’, thresh=None, subset=None, inplace=False)

参数

axis : {0 or ‘index’, 1 or ‘columns’}, or tuple/list thereof

how : {‘any’, ‘all’}

thresh : int, default None

subset : array-like

inplace : boolean, default False

返回

dropped : DataFrame


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11436948.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存