pandas 缺失值与空值处理的实现方法
作者:lwgkzl 发布时间:2023-08-02 03:21:25
1.相关函数
df.dropna()
df.fillna()
df.isnull()
df.isna()
2.相关概念
空值:在pandas中的空值是""
缺失值:在dataframe中为nan或者naT(缺失时间),在series中为none或者nan即可
3.函数具体解释
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
函数作用:删除含有空值的行或列
axis:维度,axis=0表示index行,axis=1表示columns列,默认为0
how:"all"表示这一行或列中的元素全部缺失(为nan)才删除这一行或列,"any"表示这一行或列中只要有元素缺失,就删除这一行或列
thresh:一行或一列中至少出现了thresh个才删除。
subset:在某些列的子集中选择出现了缺失值的列删除,不在子集中的含有缺失值得列或行不会删除(有axis决定是行还是列)
inplace:刷选过缺失值得新数据是存为副本还是直接在原数据上进行修改。
例子:
df = pd.DataFrame({"name": ['Alfred', 'Batman', 'Catwoman'],
"toy": [np.nan, 'Batmobile', 'Bullwhip'],
"born": [pd.NaT, pd.Timestamp("1940-04-25"),pd.NaT]})
print df
默认参数:删除行,只要有空值就会删除,不替换。
print df.dropna()
print df
print "delete colums"
print df.dropna(axis=1) #delete col
print "所有值全为缺失值才删除"
print df.dropna(how='all')
print "至少出现过两个缺失值才删除"
print df.dropna(thresh=2)
print "删除这个subset中的含有缺失值的行或列"
print df.dropna(subset=['name', 'born'])
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)
函数作用:填充缺失值
value:需要用什么值去填充缺失值
axis:确定填充维度,从行开始或是从列开始
method:ffill:用缺失值前面的一个值代替缺失值,如果axis =1,那么就是横向的前面的值替换后面的缺失值,如果axis=0,那么则是上面的值替换下面的缺失值。backfill/bfill,缺失值后面的一个值代替前面的缺失值。注意这个参数不能与value同时出现
limit:确定填充的个数,如果limit=2,则只填充两个缺失值。
示例:
df = pd.DataFrame([[np.nan, 2, np.nan, 0],
[3, 4, np.nan, 1],
[np.nan, np.nan, np.nan, 5],
[np.nan, 3, np.nan, 4]],
columns=list('ABCD'))
print df
print "横向用缺失值前面的值替换缺失值"
print df.fillna(axis=1,method='ffill')
print "纵向用缺失值上面的值替换缺失值"
print df.fillna(axis=0,method='ffill')
print df.fillna(0)
不同的列用不同的值填充:
对每列出现的替换值有次数限制,此处限制为一次
DataFrame.isna()
判断是不是缺失值:
isnull同上。
替换空值:
df = pd.DataFrame([[np.nan, 2, np.nan, 0],
[3, 4, "", 1],
[np.nan, np.nan, np.nan, 5],
[np.nan, 3, "", 4]],
columns=list('ABCD'))
print df
如上,缺失值是NAN,空值是没有显示。
替换空值代码:需要把含有空值的那一列提出来单独处理,然后在放进去就好。
clean_z = df['C'].fillna(0)
clean_z[clean_z==''] = 'hello'
df['C'] = clean_z
print df
来源:https://blog.csdn.net/lwgkzl/article/details/80948548


猜你喜欢
- import matplotlib.pyplot as plt #plt用于显示图片import matplotlib.image as m
- Win7安装mysql的具体过程,我的版本是5.5.21 以下是我的安装步骤:1、首先单击MySQL5.5.21的安装文件,出现该数据库的安
- tornado中的协程是如何工作的协程定义Coroutines are computer program components that g
- 如果遇到下述错误,表示当启动mysqld时或重新加载授权表时,在用户表中发现具有非法密码的账户。发现用户'some_user'
- Numpy是python常用的一个类库,在python的使用中及其常见,广泛用在矩阵的计算中,numpy对矩阵的操作与纯python比起来速
- 一.pyinstaller简介pyinstaller将Python脚本打包成可执行程序,使在没有Python环境的机器上运行最新版是pyin
- 前言随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了windows下YOLO的环境搭建流程。一
- 本文实例分析了ThinkPHP中的__initialize()和类的构造函数__construct()。分享给大家供大家参考。具体分析如下:
- 数据采集我们上一篇介绍了,如何采集王者皮肤,买不起皮肤,当个桌面壁纸挺好的。我们今天来学习如何采集电影评论,看看这个电影好不好看。发送请求我
- 我就废话不多说了,大家还是直接看代码吧~<Form.Item label="作用对象"> &n
- 如下所示:def softmax(logits, axis=None, name=None, dim=None): ""
- 1. wheel介绍:.whl文件(WHL file)也称为轮子(wheel),这是用于python分发(distribution)的标准内
- 一、.NET Framework Data Provider for SQL Server类型:.NET Framework类库使用:Sys
- 在用python的bottle框架开发时,前端使用ajax跨域访问时,js代码老是进入不了success,而是进入了error,而返回的状态
- numpy下fft模块提供了丰富的fft函数,几种常用的在这里记录一下使用方式fft输入实数samples,如果输入的sample是带虚数部
- 使用Nodejs的开发者愈来越多,基于Nodejs的后台开发也多了起来,像短信验证码、短信群发、国际短信这些需求,完全可以采用第三方接口来实
- 开始我们将通过示例介绍偶数列表以及在 Python 中创建偶数列表的不同方法。什么是偶数本教程展示了如何在 Python 中制作偶数列表。
- 1.文件打开与关闭在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件open(文件名,访问模式)。 f = o
- Python(包括其包Numpy)中包含了了许多概率算法,包括基础的随机采样以及许多经典的概率分布生成。我们这个系列介绍几个在机
- 分水岭技术是一种众所周知的分割算法,特别适用于提取图片中的相邻或重叠对象。使用分水岭方法时,我们必须从用户定义的标记开始。这些标记可以使用点