首页IT科技pandas数据清洗初级实践心得体会(pandas数据清洗)

pandas数据清洗初级实践心得体会(pandas数据清洗)

时间2025-09-19 12:11:05分类IT科技浏览5403
导读:数据清洗 数据清洗是对一些没有用的数据进行处理的过程。...

数据清洗

数据清洗是对一些没有用的数据进行处理的过程                。

很多数据集存在数据缺失                、数据格式错误                        、错误数据或重复数据的情况                ,如果要对使数据分析更加准确                        ,就需要对这些没有用的数据进行处理                        。

在这个教程中        ,我们将利用 Pandas包来进行数据清洗        。

处理丢失数据

有两种丢失数据:

None np.nan(NaN)

两种丢失数据的区别

为什么在数据分析中需要用到的是浮点类型的空而不是对象类型?

数据分析中会常常使用某些形式的运算来处理原始数据            ,如果原数数据中的空值为NAN的形式                        ,则不会干扰或者中断运算            。 NAN可以参与运算的 None是不可以参与运算

在pandas中如果遇到了None形式的空值则pandas会将其强转成NAN的形式                        。

pandas处理空值操作

isnull notnull any all dropna fillna

方式1:对空值进行过滤(删除空所在的行数据)

技术:isnull            ,notnull        ,any                        ,all #哪些行中有空值 #any(axis=1)检测哪些行中存有空值 df.isnull().any(axis=1) #any会作用isnull返回结果的每一行 #true对应的行就是存有缺失数据的行 df.notnull() df.notnull().all(axis=0) #all 只要有false                ,则整体就是false #将布尔值作为源数据的行索引 df.loc[df.notnull().all(axis=1)]

方式2:

dropna:可以直接将缺失的行或者列进行删除

对缺失值进行覆盖

fillna df.fillna(value=999) #使用指定值将源数据中所有的空值进行填充 #使用空的近邻值进行填充 #method=ffill向前填充    ,bfill向后填充 df.fillna(axis=0,method=bfill)

什么时候用dropna什么时候用fillna

尽量使用dropna                        ,如果删除成本比较高                    ,则使用fillna

使用空值对应列的均值进行空值填充

for col in df.columns: #检测哪些列中存有空值 if df[col].isnull().sum() > 0:#说明df[col]中存有空值 mean_value = df[col].mean() df[col] = df[col].fillna(value=mean_value)

面试题

数据说明: 数据是1个冷库的温度数据,1-7对应7个温度采集设备                    ,1分钟采集一次            。 数据处理目标: 用1-4对应的4个必须设备                        ,通过建立冷库的温度场关系模型    ,预估出5-7对应的数据        。 最后每个冷库中仅需放置4个设备                ,取代放置7个设备                        。 f(1-4) --> y(5-7) 数据处理过程: 1        、原始数据中有丢帧现象                        ,需要做预处理; 2            、matplotlib 绘图; 3                        、建立逻辑回归模型                。 无标准答案        ,按个人理解操作即可            ,请把自己的操作过程以文字形式简单描述一下                        ,谢谢配合    。 测试数据为testData.xlsx

Data:

丢帧预处理:

清洗掉none,none1列df.drop(label=[none,none1],axis=1)

删掉空值所在的行

#删除空对应的行数据 data.dropna(axis=0)

处理重复数据

#检测哪些行存有重复的数据 df.duplicated(keep=first)

第1行之所以是false            ,是因为keep保留了第一个出现的数据        ,但是3                        ,5行就不保留了                        。如果keep=last                ,则保留最后一行数据;keep=false则删除所有数据

df.drop_duplicates(keep=first)删除重复数据

处理异常数据

自定义一个1000行3列(A    ,B                        ,C)取值范围为0-1的数据源                    ,然后将C列中的值大于其两倍标准差的异常值进行清洗

df = DataFrame(data=np.random.random(size=(1000,3)),columns=[A,B,C])

判定条件:c值大于本列的方差的2倍,则为异常数据

#制定判定异常值的条件 twice_std = df[C].std() * 2 twice_std df[C] > twice_std --> 异常值所在列 ~df[C] > twice_std --> 取反操作 df.loc[~(df[C] > twice_std)] --> 通过定位非异常值索引来获取正常值

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
lua调用另一个lua的函数(069 问,lua程序设计(第四部分)笔记三,c++调用lua函数 everettjf C++博客)