pandas去重和删除空值列或行

本文只面向小白,大佬请多多指教批评。

一、删除空值

1、删除未经处理的空值数据所在的行或列

在这种情况下我们看到的空值数据通常显示的是NaN
在这里插入图片描述
那么这种情况就比较好处理直接调用dropna()函数
在这里插入图片描述
应用:

order.dropna(axis=1)

删除过后的样子:
在这里插入图片描述

2、删除已用代表空值的’NA’替换过的数据

这个时候就需要写一个循环来删除数据所在行或者列(这里删的是列)
删除前先看一下数据
在这里插入图片描述
开始写循环

for i in detail1.columns:
#     遍历数据行
    for j in range(len(detail1)):
#         判断数据,如果在i行j列的数据为'NA'时
        if detail1.loc[j,i] == 'NA':
#         查看具体那一列被删除了
            print("正在删除%s列" % i)
#           调用drop函数删除空值所在列
            detail1.drop(labels = i ,axis=1,inplace=True)
#         当执行删除后需立即跳出该循环,否者会报错,出现找不到该列。
            break
# 最后看一下删除空值列后的表
detail1

输出结果:
在这里插入图片描述
可以看到此时已经没有值为空的列了。

二、去重

调用去重函数pd.drop_duplicates()
在这里插入图片描述
应用:
首先创建一个DataFrame
(通过传递可以转换为类似系列的对象的字典来创建DataFrame)

import pandas as pd
import numpy as np
dates = pd.date_range('20170101', periods=4)
datas = pd.DataFrame({
    'A' : range(1,5),
    'B' : dates,   #以年月日的方式创建一列数据
    'C' : pd.Series(range(6,10),index=list(range(4)),dtype='float32'),   #以序列的形式创建一列数据
    'D' : pd.Categorical(['test','train','test','train']),
})
print(datas)

在这里插入图片描述
可以看到在D列有重复的数据test和train
先试试对某一列去重(这里是D列)

# 对某一列去重
datas.drop_duplicates(['D'])

结果
在这里插入图片描述
有时我们所得到的数据不只是一列重复还可能是多列,再试试对多列去重。

# 对多列一起去重
datas.drop_duplicates(['A','B','C','D']) # 我们可以看到没有变化因为没有完全一样的一行

结果:
在这里插入图片描述

  • 11
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是对重点操作的介绍和演示: 1. 删除行或: 使用`dropna()`函数可以删除带有缺失值的行或。可以通过设置`axis`参数来指定删除行还是,默认为删除行。可以通过设置`how`参数来指定删除的条件,`any`表示行或中只要有一个缺失值就清除,`all`表示要整行或整都是缺失值才清除。示例代码如下: ```python import pandas as pd import numpy as np df = pd.DataFrame([[3,4,5], [1,6,np.nan], ['xxj',np.nan,np.nan],[np.nan,np.nan,np.nan]]) df.dropna(axis=0, how='any', inplace=True) # 删除带有缺失值的行 df.dropna(axis=1, how='all', inplace=True) # 删除都是缺失值的 ``` 2. 去重: 使用`drop_duplicates()`函数可以去除DataFrame中的重复行。示例代码如下: ```python df.drop_duplicates(inplace=True) # 去除重复行 ``` 3. 改类型: 使用`astype()`函数可以改变DataFrame中某一的数据类型。示例代码如下: ```python df['column_name'] = df['column_name'].astype('new_type') # 将某一的数据类型改为new_type ``` 4. 排序: 使用`sort_values()`函数可以对DataFrame按照某一或多进行排序。示例代码如下: ```python df.sort_values(by='column_name', ascending=True, inplace=True) # 按照某一升序排序 ``` 5. 填充: 使用`fillna()`函数可以对DataFrame中的缺失值进行填充。示例代码如下: ```python df.fillna(value='new_value', inplace=True) # 将缺失值填充为new_value ``` 6. 检测缺失值: 使用`isnull()`函数可以检测DataFrame中的缺失值,返回一个布尔型的DataFrame。示例代码如下: ```python df.isnull() # 检测DataFrame中的缺失值 ``` 7. 删除空值: 使用`dropna()`函数可以删除DataFrame中的空值。示例代码如下: ```python df.dropna(inplace=True) # 删除空值 ``` 8. 分组: 使用`groupby()`函数可以对DataFrame进行分组操作。示例代码如下: ```python df.groupby('column_name') # 按照某一进行分组 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值