pandas 缺失值、异常值提取和处理

这篇具有很好参考价值的文章主要介绍了pandas 缺失值、异常值提取和处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

for columname in df.columns: #遍历每一列 
    if df[columname].count()  != len(df): #判断缺失行条件:所在列的值数等于总数据的长度
        #将存在缺失值的行的索引转换成列表储存
        loc = df[columname][df[columname].isnull().values == True].index.tolist()
        print('列名:"{}",第{}行位置有缺失值'.format(columname, loc))

遍历每列 -> 列长是否小于总长 ->缺失值所在行: df['列名'][df['列名‘].isnull().values==True ]

1. 缺失值处理

dropna()删除缺失值

df.dropna(axis=0) # 删除包含缺失值的行
df.dropna(axis=1) # 删除包含缺失值的列

使用 fillna() 方法填充缺失值,可以使用指定的值、前一个有效值、后一个有效值或者均值、中位数等。

df.fillna(value=0)  # 用指定值填充缺失值
df.fillna(method='ffill')  # 使用前一个有效值填充缺失值
df.fillna(method='bfill')  # 使用后一个有效值填充缺失值
df.fillna(df.mean())  # 使用均值填充缺失值
df.fillna((df.shift()+df.shift(-1))/2) #用前后数值的平均值填充
# 使用前一个数据和后一个数据的平均值填充缺失值,边界情况下使用同侧的值
df = df.fillna((df.shift().fillna(method='bfill') + df.shift(-1).fillna(method='ffill')) / 2)

最后一行的边界情况指的是第一行、最后一行等情况

2. 不合规数据

df[df['ColumnName']=='不合规数据']

df[df['ColumnName'].str.contains(' ')]

包含’--‘为不合规数据提取:

# 方法一:isin()
df[df['column'].isin(['--'])]
# 方法二:contains() df[df["column"].str.contains("--")]

数据类型不为str提取:

temp = pd.DataFrame()
for i in range(len(df)):
    if type(df['ColumnName'][i]) != str: #df['xxx'][i]或写成df.iloc[i,j]
        temp = temp.append(df.loc[i])

 

不合规数据的处理:讲数据替换成nan,再用缺失值处理的方法

# 将不符合规范的值替换为 NaN
df = df.replace(['--', '111'], np.nan)

# 使用前一个数据和后一个数据的平均值填充缺失值,边界情况下使用同侧的值
df = df.fillna((df.shift().fillna(method='bfill') + df.shift(-1).fillna(method='ffill')) / 2)

 文章来源地址https://www.toymoban.com/news/detail-825164.html

到了这里,关于pandas 缺失值、异常值提取和处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • <2>【深度学习 × PyTorch】pandas | 数据预处理 | 处理缺失值:插值法 | networkx模块绘制知识图谱 | 线性代数初步

      你永远不可能真正的去了解一个人,除非你穿过ta的鞋子,走过ta走过的路,站在ta的角度思考问题,可当你真正走过ta走过的路时,你连路过都会觉得难过。有时候你所看到的,并非事实真相,你了解的,不过是浮在水面上的冰山一角。—————《杀死一只知更鸟》   🎯

    2024年02月01日
    浏览(45)
  • Python数学建模 缺失值与异常值处理

    Github仓库:Mathematical-modeling 定义 :缺失值,即存在特征或标签为空值的样本。包含空值的数据会使建模过程陷入混乱,导致不可靠输出。缺少过多的数据也将丢失大量有效信息,使数据模型难以把握数据规律。 缺失原因 : 部分信息暂时无法获取 由于人为因素丢失部分信息

    2024年02月06日
    浏览(48)
  • Pandas数据选取中df[]、df.loc[]、df.iloc[]、df.at[]、df.iat[]的区别及用法

    Pandas是作为Python数据分析著名的工具包,提供了多种数据选取的方法,方便实用。本文主要介绍Pandas的几种数据选取的方法。 Pandas中,数据主要保存为Dataframe和Series是数据结构,这两种数据结构数据选取的方式基本一致,本文主要以Dataframe为例进行介绍。 在Dataframe中选取数

    2023年04月22日
    浏览(49)
  • pandas dataframe df.join

    根据dataframe的index索引进行拼接,即df1.index=df2.index时,才会将df2[‘发布时间’]拼到df1左边 如果想指定共同索引,可以用df.merge 此外如果想忽略索引直接1对1拼接,可以先df.reset_index再用df.join

    2024年02月03日
    浏览(38)
  • 52_Pandas处理日期和时间列(字符串转换、日期提取等)

    将解释如何操作表示 pandas.DataFrame 的日期和时间(日期和时间)的列。字符串与 datetime64[ns] 类型的相互转换,将日期和时间提取为数字的方法等。 以下内容进行说明。 如何将 datetime64[ns] 类型指定为索引并将其处理为时序数据以及如何使用,请参考以下文章。 26_Pandas.DataFr

    2024年01月22日
    浏览(48)
  • pandas,polars,pyspark的df对象常见用法对比

    最近上班需要处理的都是百万,千万级的数据,pandas的性能已经不够看了(虽然它在处理数据上是真的很好用),公司都是用的polar和pyspark,我最近也学习了一些,然后写篇文章对比一下他们的常见用法。虽然他们都有数据框dataframe这个数据结构,但是具体用法还是有很多差

    2024年04月28日
    浏览(26)
  • MySQL Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column异常处理

    使用联表查询时,group by两个字段出现了错误 意思是select字段里包含了没有被group by 条件唯一确定的字段。 MySQL版本5.7之后会检测函数依赖,默认启用的模式是ONLY_FULL_GROUP_BY,使用GROUP BY 语句违背了sql_mode=only_full_group_by。该模式的意思是只有确定唯一字段的group by才能执行。

    2024年01月24日
    浏览(50)
  • pandas中df取某列小数点后两位的四种方法

    读取文件 方法一 对x y两列取小数点后三位 方法二 对x y两列取小数点后三位 方法三 对带小数点的数据有效 将所有数据中的满足小数点的取三位 方法四 对y取小数点后两位

    2024年02月09日
    浏览(41)
  • 【python】【pandas】获得DataFrame的列数的两种方法:shape属性或columns属性。

    要获得DataFrame的列数,可以使用 shape 属性或 columns 属性。 下面是两种方法的示例: 1. 使用 shape 属性:  输出结果: 2. 使用 columns 属性: 输出结果: 在上述代码中,我们创建了一个示例DataFrame,并使用不同的方法获得列数。使用 shape 属性,我们可以获取DataFrame的形状信息,其

    2024年02月16日
    浏览(43)
  • Pandas提取非空行值

    在做数据处理的时候,会遇到要提取表格中,某一列的值不为空的行,我们可以通过pandas来轻松处理。具体步骤如下所示: 一、创建表格  二、表格属性 a b 0 1 1.0 1 2 2.0 2 3 NaN 3 4 NaN 三、获取布尔值 四、获取非空值的行 a b 0 1 1.0 1 2 2.0        

    2024年02月11日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包