python数据分析pandas中的DataFrame数据清洗

pandas中的DataFrame中的空数据处理方法:

方法一:直接删除

1.查看行或列是否有空格(以下的df为DataFrame类型,axis=0,代表列,axis=1代表行,以下的返回值都是行或列索引加上布尔值)•   isnull方法    •           查看行:df.isnull().any(axis=1)  •           查看列:df.isnull().any(axis=0)•   notnull方法:•           查看行:df.notnull().all(axis=1)•           查看列:df.notnull().all(axis=0)例子:•   df.isnull().any(axis=1) # 检测行内是否有空值•           0     False•           1     True•           2    False•           3     True•           4    False•           5     True•           6    False•           7     True•           8    False•           9    False•           dtype: bool注意点:以上方法都可以用~取反的办法获取相反的结果2.在1的前提下使用df.loc[],可取出1中筛选出数据的具体数据如:•   df.loc[df.isnull().any(axis=1)]•   取出这几行的索引可用属性index如:df.loc[df.isnull().any(axis=1)].index•   得到这些索引后可以使用drop方法进行删除如:•       注意:drop方法中的axis值与其他方法相反,axis=0表示行,=1表示列。•       df.drop(labels=drop_index, axis=0) ?总结下来为4步:    一.使用isnull或notnull筛选:df.isnull().any(axis=0)    二.使用loc取出具体数据:df.loc[df.isnull().any(axis=1)]    三:取出这些数据的索引:df.loc[df.isnull().any(axis=1)].index    四.使用drop删除:df.drop(labels=drop_index, axis=0)

方法二:填充空值

步骤和方法一前几步相同    isnull()    notnull()    dropna(): 过滤丢失数据(df.dropna() 可以选择过滤的是行还是列(默认为行):axis中0表示行,1表示的列)    fillna(): 填充丢失数据(可以选择自主添加数据,或者用表中原有的数据进行补充)

1.使用dropna(不常用):df.dropna(axis=0)2.使用fillna(常用):    一.df.fillna(value=666)给所有的控制赋值为666    二.df.fillna(method=‘ffill‘, axis=0)  # axis=0表示在垂直方向填充(axis值:0为垂直,1为水平),使用上方的值对空值进行填充,组合起来就是,使用垂直方向上方的值对当前位置的值进行填充    三.df.fillna(method=‘bfill‘, axis=1)  # axis=1表示在水平方向填充(axis值为0垂直1为水平),bfill表示使用后面的值对空值进行填充,组合起来就是,使用水平方向右边的值对当前位置的值进行填充    总结:ffill(前)和bfill(后)决定前或后,axis决定垂直或水平

原文地址:https://www.cnblogs.com/caiwenjun/p/11778378.html

时间: 2024-10-03 17:18:26

python数据分析pandas中的DataFrame数据清洗的相关文章

Python数据分析--Pandas知识点(二)

本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. Python数据分析--Pandas知识点(一) 下面将是在知识点一的基础上继续总结. 13. 简单计算 新建一个数据表df 1 import pandas as pd 2 3 df = pd.DataFrame({"地区": ["A区","B区", "C区"], 4 "前半年销量": [3500, 4500,3800], 5

Python数据分析--Pandas知识点(三)

本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. Python数据分析--Pandas知识点(一) Python数据分析--Pandas知识点(二) 下面将是在知识点一, 二的基础上继续总结. 前面所介绍的都是以表格的形式中展现数据, 下面将介绍Pandas与Matplotlib配合绘制出折线图, 散点图, 饼图, 柱形图, 直方图等五大基本图形. Matplotlib是python中的一个2D图形库, 它能以各种硬拷贝的格式和跨平台的交互式环境生成高质量的图形,

Python数据分析-Pandas

在学习了Numpy后,进行数据科学计算,为何还要使用Pandas呢?其实原因就是效率高,那为何Pandas效率比numpy要高呢?其实Pandas和Numpy还是有着很大的关系的,Pandas本身是依赖numpy的,而ndarray在内存里占据这一段连续的内存空间,任何改变ndarray长度的操作都势必让所有value改变内存中的位置因此在某种程度上,Numpy操作效率还是比较慢的.但是Pandas并不是处理所有的数据都是效率很高的,那么一般情况下处理以下的数据比较友好: Pandas适合处理多

Python数据分析 Pandas模块 基础数据结构与简介(一)

pandas 入门 简介 pandas 组成 = 数据面板 + 数据分析工具 poandas 把数组分为3类 一维矩阵:Series 把ndarray强大在可以存储任意数据类型可以专门处理时间数据 二维矩阵:DataFrame 三维面板数据:Panel 背景:为金融产品数据分析创建的,对时间序列支持非常好! 数据结构 导入pandas模块 import pandas as pd 读取csv文件,数据类型就是二维矩阵 DataFrame df = pd.read_csv('路径')type(df)

Pandas中的DataFrame按指定顺序输出所有列的方法

问题: 输出新建的DataFrame对象时,DataFrame中各列的显示顺序和DataFrame定义中的顺序不一致. 例如: import pandas as pd grades = [48,99,75,80,42,80,72,68,36,78] df = pd.DataFrame( {'ID': ["x%d" % r for r in range(10)], 'Gender' : ['F', 'M', 'F', 'M', 'F', 'M', 'F', 'M', 'M', 'M'],

解决pandas中打印DataFrame行列显示不全的问题

在使用pandas的DataFrame打印时,如果表太长或者太宽会自动只给前后一些行列,但有时候因为一些需要,可能想看到所有的行列. 所以只需要加一下的代码就行了. #显示所有列 pd.set_option('display.max_columns', None)#显示所有行pd.set_option('display.max_rows', None)#设置value的显示长度为100,默认为50pd.set_option('max_colwidth',100) 原文地址:https://www

python数据分析笔记中panda(2)

1 将手机号码分开为运营商,地区和号码段 1 from pandas import read_csv; 2 3 df = read_csv("H:\\pythonCode\\4.6\\data.csv"); 4 5 6 #转换成字符数据 方便用slice 7 df['tel'] = df['tel'].astype(str); 8 9 #字符的抽取:根据已知列数据的开始和结束的位置 抽取新的列 slice(start,stop) 10 #运营商 11 bands = df['tel']

pandas中,dataframe 进行数据合并-pd.concat()

``# 通过数据框列向(左右)合并 a = pd.DataFrame(X_train) b = pd.DataFrame(y_train) # 合并数据框(合并前需要将数据设置成DataFrame格式), 其中,如果axis=1,ignore_index将改变的是列上的索引(属性名) print(pd.concat([a,b], axis=1, ignore_index=False)) 原文地址:https://www.cnblogs.com/komean/p/10670548.html

Pandas中的DataFrame.filter()

>>> df one two three mouse 1 2 3 rabbit 4 5 6 >>> # select columns by name >>> df.filter(items=['one', 'three']) one three mouse 1 3 rabbit 4 6 >>> # select columns by regular expression >>> df.filter(regex='e$