首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python中数据清洗_dropon

python中数据清洗_dropon

作者头像
全栈程序员站长
发布2022-09-30 18:36:31
发布2022-09-30 18:36:31
6720
举报

大家好,又见面了,我是你们的朋友全栈君。

实际应用中,在得到原始数据时,经常碰到数据缺失问题,对数据进行加工或清洗就非常有必要了

代码语言:javascript
复制
import numpy as np
from numpy import nan
import pandas as pd
data=pd.DataFrame(np.arange(3,19,1).reshape(4,4),index=list('abcd'))
print(data)
print(data.isnull())   ### 查看data是否有缺失值(空值),False无缺失值
pritn(data.notnull())  ### 查看data是否有缺失值(空值),True无缺失值
代码语言:javascript
复制
输出结果:
代码语言:javascript
复制
    0   1   2   3
a   3   4   5   6
b   7   8   9  10
c  11  12  13  14
d  15  16  17  18
       0      1      2      3
a  False  False  False  False
b  False  False  False  False
c  False  False  False  False
d  False  False  False  False
      0     1     2     3
a  True  True  True  True
b  True  True  True  True
c  True  True  True  True
d  True  True  True  True
代码语言:javascript
复制
print(data.drop('a'))        ### 默认参数axis=0,根据索引(index)删除指定的行
print(data.drop(1,axis=1)    ### axis=1,根据列名(columns)删除指定的列
代码语言:javascript
复制
    0   1   2   3
b   7   8   9  10
c  11  12  13  14
d  15  16  17  18
    0   2   3
a   3   5   6
b   7   9  10
c  11  13  14
d  15  17  18
代码语言:javascript
复制
print(data.drop(index=list('ac')))         ### 删除索引为‘ac’这2行,或print(data.drop(index=['a','c']))
print(data.drop([1,3],axis=1))             ### 删除列名为‘13’这2列
代码语言:javascript
复制
    0   1   2   3
b   7   8   9  10
d  15  16  17  18
    0   2
a   3   5
b   7   9
c  11  13
d  15  17
代码语言:javascript
复制
data.iloc[0:2,0:3]=nan  ### 取data前2行和前3列为空值
print(data)
print(data.isnull())    ### True为有缺失值
代码语言:javascript
复制
      0     1     2   3
a   NaN   NaN   NaN   6
b   NaN   NaN   NaN  10
c  11.0  12.0  13.0  14
d  15.0  16.0  17.0  18
       0      1      2      3
a   True   True   True  False
b   True   True   True  False
c  False  False  False  False
d  False  False  False  False
代码语言:javascript
复制
print(data.dropna())  ### 默认axis=0,how='any',删除带有空值的行,只要有一个空值,就删除整行
代码语言:javascript
复制
      0     1     2   3
c  11.0  12.0  13.0  14
d  15.0  16.0  17.0  18
代码语言:javascript
复制
print(data.dropna(axis=1)) ### axis=1,删除带有空值的列,只要有一个空值,就删除整列
代码语言:javascript
复制
    3
a   6
b  10
c  14
d  18
代码语言:javascript
复制
data=pd.DataFrame(np.arange(3,19,1).reshape(4,4),index=list('abcd'))
print(data)
data.iloc[0:1,:]=nan
data[3]=nan
print(data)
代码语言:javascript
复制
      0     1     2   3
a   NaN   NaN   NaN NaN
b   7.0   8.0   9.0 NaN
c  11.0  12.0  13.0 NaN
d  15.0  16.0  17.0 NaN
代码语言:javascript
复制
print(data.dropna(how='all'))       ### 整行都是空值时,才会被删除
代码语言:javascript
复制
      0     1     2   3
b   7.0   8.0   9.0 NaN
c  11.0  12.0  13.0 NaN
d  15.0  16.0  17.0 NaN
代码语言:javascript
复制
print(data.dropna(how='all',axis=1))    ### 整列都是空值时,才会被删除
代码语言:javascript
复制
      0     1     2
a   NaN   NaN   NaN
b   7.0   8.0   9.0
c  11.0  12.0  13.0
d  15.0  16.0  17.0
代码语言:javascript
复制
### thresh,设定阈值,缺失值个数大于该阈值,整行(axis=0)或整列(axis=1)才会被删除

print(data.dropna(thresh=2)) ### thresh=2,缺失值个数大于2,该行才会被删
代码语言:javascript
复制
      0     1     2   3
c  11.0  12.0  13.0  14
d  15.0  16.0  17.0  18
代码语言:javascript
复制
print(data.dropna(subset=[1,2]))  ### 删除指定列中包含缺失值的行
      0     1     2   3
c  11.0  12.0  13.0  14
d  15.0  16.0  17.0  18

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/192632.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月17日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档