python_缺失值处理(python缺失值处理众数)

网友投稿 277 2022-08-24


python_缺失值处理(python缺失值处理众数)

python_缺失值处理

Data Cleaning and Preparation# pandas使⽤浮点值# NaN(Not a Number)表示缺失数据。我们称其为哨兵值import numpy as npimport pandas as pdPREVIOUS_MAX_ROWS = pd.options.display.max_rowspd.options.display.max_rows = 20np.random.seed(12345)import matplotlib.pyplot as pltplt.rc('figure', figsize=(10, 6))np.set_printoptions(precision=4, suppress=True)Handling Missing Datastring_data = pd.Series(['aardvark', 'artichoke', np.nan, 'avocado'])string_data# 判断是否是空值string_data.isnull()0 False1 False2 True3 Falsedtype: boolstring_data[0] = Nonestring_data.isnull()0 True1 False2 True3 Falsedtype: boolFiltering Out Missing Data# 滤除缺失数据# 过滤掉缺失数据的办法有很多种。你可以通过pandas.isnull或布# 尔索引的⼿⼯⽅法,但dropna可能会更实⽤⼀些。对于⼀个# Series,dropna返回⼀个仅含⾮空数据和索引值的Series: 删除空行from numpy import nan as NAdata = pd.Series([1, NA, 3.5, NA, 7])data.head()data.dropna()0 1.02 3.54 7.0dtype: float64data[data.notnull()]0 1.02 3.54 7.0dtype: float64data = pd.DataFrame([[1., 6.5, 3.], [1., NA, NA], [NA, NA, NA], [NA, 6.5, 3.]])cleaned = data.dropna()datacleaned0 1 20 1.0 6.5 3.0# 传⼊how='all'将只丢弃全为NA的那些⾏:data.dropna(how='all')data[4] = NAdatadata.dropna(axis=1, how='all')# 部分数据赋予空值# ⽤thresh参数实现此⽬的df = pd.DataFrame(np.random.randn(7, 3))df.iloc[:4, 1] = NAdf.iloc[:2, 2] = NAdfdf.dropna()df.dropna(thresh=2)0 1 22 1.634736 NaN 0.4579403 0.555154 NaN -0.4405544 -0.301350 0.498791 -0.8239915 1.320566 0.507965 -0.6534386 0.186980 -0.391725 -0.272293Filling In Missing Data# 填充缺失数据df.fillna(0)0 1 20 0.107657 0.000000 0.0000001 -0.017007 0.000000 0.0000002 1.634736 0.000000 0.4579403 0.555154 0.000000 -0.4405544 -0.301350 0.498791 -0.8239915 1.320566 0.507965 -0.6534386 0.186980 -0.391725 -0.272293通过⼀个字典调⽤fillna,就可以实现对不同的列填充不同的# 值:# 通过⼀个字典调⽤fillna,就可以实现对不同的列填充不同的# 值:df.fillna({1: 0.5, 2: 0})0 1 20 0.107657 0.500000 0.0000001 -0.017007 0.500000 0.0000002 1.634736 0.500000 0.4579403 0.555154 0.500000 -0.4405544 -0.301350 0.498791 -0.8239915 1.320566 0.507965 -0.6534386 0.186980 -0.391725 -0.272293# 对现有对象进⾏就地修改_ = df.fillna(0, inplace=True)df0 1 20 0.107657 0.000000 0.0000001 -0.017007 0.000000 0.0000002 1.634736 0.000000 0.4579403 0.555154 0.000000 -0.4405544 -0.301350 0.498791 -0.8239915 1.320566 0.507965 -0.6534386 0.186980 -0.391725 -0.272293df = pd.DataFrame(np.random.randn(6, 3))df.iloc[2:, 1] = NAdf.iloc[4:, 2] = NAdfdf.fillna(method='ffill')df.fillna(method='ffill', limit=2)data = pd.Series([1., NA, 3.5, NA, 7])# 传⼊Series的平均值或中位数data.fillna(data.mean())0 1.0000001 3.8333332 3.5000003 3.8333334 7.000000


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python_汇总和计算描述统计(python中统计)
下一篇:Springboot整合RabbitMq测试TTL的方法详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~