栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

基于pandas的数据清洗

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于pandas的数据清洗

        假设我们有一份不完整的DataFrame类型的数据,我们在使用它之前要对其进行数据的清洗。

        使用pandas我们可以有两种方式来实现对数据的清洗

先假设我们存在下面一组不完整的数据:

import numpy as np
import pandas as pd
from pandas import DataFrame,Series
df=DataFrame(data=np.random.randint(0,100,(12,10)))
df.iloc[3,3]=None
df.iloc[1,7]=None
df.iloc[6,6]=None
df.iloc[8,9]=None
df.iloc[3,9]=None

1.删除缺失值所在的行(一般情况下删除行,特殊情况下也可以删除列)  

方法①:

首先用isnull()函数返回df所有数据哪些为空(返回布尔型),再用any()函数检测行或列中是否存在True。

在用loc()函数与index属性得到缺失值所在行,把他删去即可。

# any用来检测行或列中是否存在True
df.isnull().any(axis=1)
df.loc[df.isnull().any(axis=1)].index
df.drop(labels=df.loc[df.isnull().any(axis=1)].index,axis=0) #可以指定inplace=True

方法②:

与①同理,只需把isnull()改为notnull(),把any()改为all()即可。

df.notnull().all(axis=1)
df.loc[df.notnull().all(axis=1)]

方法③:

最简单的方法,直接用dropna()函数指定行或列删除即可。

df.dropna(axis=0)

2.将缺失值进行填充

        一般情况下我们直接将缺失值所在行删除,如果在特殊情况下删除所有缺失行造成的成本过大(比如10行数据中有6行存在缺失值),我们可以将缺失值进行合理化的填充。

使用fillna()函数可以帮助我们把缺失值进行填充

df.fillna(method='ffill',axis=1) #将缺失值所在行向前填充
df.fillna(method='bfill',axis=1) #将缺失值所在行向后填充
df.fillna(method='ffill',axis=0) #将缺失值所在列向前填充
df.fillna(method='bfill',axis=0) #将缺失值所在列向后填充

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1008565.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号