首页 > 其他分享 >pandas 缺失值、异常值提取和处理

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

时间:2024-02-17 22:55:07浏览次数:25  
标签:提取 填充 df shift 缺失 method fillna 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)

 

标签:提取,填充,df,shift,缺失,method,fillna,pandas
From: https://www.cnblogs.com/ricenoodle/p/18018554

相关文章

  • 使用MICE进行缺失值的填充处理
    在我们进行机器学习时,处理缺失数据是非常重要的,因为缺失数据可能会导致分析结果不准确,严重时甚至可能产生偏差。处理缺失数据是保证数据分析准确性和可靠性的重要步骤,有助于确保分析结果的可信度和可解释性。在本文中,我们讲重点介绍MICE。MICE(MultipleImputationbyChainedEq......
  • 借助Rich库实现Pandas DataFrame颜值升级
    pandas的DataFrame功能强大自不必说,它可以帮助我们极大的提高统计分析的效率。不过,使用DataFrame开发我们的分析程序的时候,经常需要打印出DataFrame的内容,以验证和调试数据的处理是否正确。在命令行中虽然可以直接打印出DataFrame的内容,但是阅读比较困难。正好前段时间了解到pyt......
  • pandas.DataFrame.drop()函数
    在Pandas库中,DataFrame.drop()用于移除DataFrame中的行或列。df.drop(labels=None,axis=0,index=None,columns=None,level=None,inplace=False,errors='raise')参数:1.labels:要删除的列或者行,如果要删除多个,传入列表2.axis:轴的方向,0为行,1为列,默认为03.......
  • 提取数据(实验室检查)
    /***实验室检查*/publicclassBeginPathology{publicstaticvoidmain(String[]args)throwsException{try{StringfolderPath="C:\\Users\\kfeng5\\OneDrive-DXCProduction\\Desktop\\年假工作";Filefolder......
  • 【机器学习】数据清洗之处理缺失点
    ......
  • 【机器学习】数据清洗之识别缺失点
    ......
  • 03-数据提取
    本节概要:如何提取嵌入在HTML格式中的文本信息。很多网站请求后,返回的数据是嵌套在HTML格式中的。例如:5xclass.cn对于这种情况想要提取其中的数据,常见有两种方法:基于bs4模块(本节重点)基于xpath模块1.HTML格式<div><h1class="item">武沛齐</h1><ulclass="item">......
  • ()氏提取器
    还愿。远古时期填的一个歌(取badapple曲)去描述更远古的一个广为人知的事。大概的曲谱:写的抽象的词:1七月盛夏中,草木凋零,ix讳会锁伟大之降落,寒光震慑hn中沼泽。撮盐入火般,崭露锋芒,秋来春去鼎盛突逢祸,竟遭贬谪西藏。会锁锁苍穹,东方水神慑众峰,卧水尝雪御西藏,坐断西南塞四方。......
  • 提取数据
    packageorg.pdffolder.pdffolder01;importorg.apache.pdfbox.pdmodel.PDDocument;importorg.apache.pdfbox.text.PDFTextStripper;importorg.apache.tika.utils.StringUtils;importjava.io.File;importjava.util.regex.Matcher;importjava.util.regex.Pattern;......
  • linux 中如何提取一列中纯数字或者纯字母的行
     001、纯数字[root@PC1test1]#lsa.txt[root@PC1test1]#cata.txt##测试文本sdf3247fy323td34342fff435tih6334s234dfg65[root@PC1test1]#grep"^[0-9]\+$"a.txt##提取纯数字的行3424356334 002、纯字母[root@PC1t......