当前位置: 首页 > news >正文

python数据分析—删除value=0的行

文章目录

前言

一、数据处理

二、删除某行方法的使用

1.删除全行都是为0的行

2.用nan替换零,然后删除所有行中数据都为nan的行。之后,将nan替换为零。

 3.删除某行中某个值为0的行

4.使用lambda函数来删除行


前言

拿到一堆数据,首先我们是要对其进行数据的预处理,其中数据存在一些值为空或者是我们不想要的数据,对其进行删除或者是修改数据值。下面是对于该例子进行删除和修改:
 

>>> df
out[]:
   salary   age   gender
0   10000    23     男
1   15000    34     女
2   23000    21     男
3     0      20     女
4   28500     0     男
5   35000    37     男

一、数据处理

1. df.replace()方法:将“男”用1来表示,“女孩”用0来表示。

>>> df.replace(["男", "女"], [1, 0])
out[]:
   salary   age   gender
0   10000    23     1
1   15000    34     0
2   23000    21     1
3     0      20     0
4   28500     0     1
5   35000    37     1

2.  pd.DataFrame.loc()方法来指定列中数据为0的行:

>>> df = df.loc[~((df['salary'] == 0) | (df['age'] == 0))]
>>> df
out[]:
   salary   age   gender
0   10000    23     1
1   15000    34     0
2   23000    21     1
3   35000    37     1

还可以用: 

df = df.loc[df['salary'] * df['age'] != 0]

二、删除某行方法的使用

1.删除全行都是为0的行

代码如下:

>>> df.loc[~(df==0).all(axis=1)]

 看起来比较对称可以这样写:

>>> df.loc[(df!=0).any(axis=1)]

使用dropna方法来删除:

>>> new_df = df[df.loc[:]!=0].dropna()

2.用nan替换零,然后删除所有行中数据都为nan的行。之后,将nan替换为零。

代码如下:

import numpy as np
df = df.replace(0, np.nan)# 把0替换成nan
df = df.dropna(how='all', axis=0)# 删除所有为nan的行
df = df.replace(np.nan, 0)# 再把nan替换成0

 3.删除某行中某个值为0的行

代码如下:|

>>> df= df[df['salary'] != 0]

4.使用lambda函数来删除行

代码如下:
 

import pandas as pd
import numpy as np

np.random.seed(0)

df = pd.DataFrame(np.random.randn(5,3),
                  index=['one', 'two', 'three', 'four', 'five'],
                  columns=list('abc'))

df.loc[['one', 'three']] = 0 # 把第一行和第三行改为0

print(df)
print(df.loc[~df.apply(lambda row: (row==0).all(), axis=1)])

输出为:
 

要在任何行中删除所有值为0的列: 

new_df = df[df.loc[:]!=0].dropna()
new_df

 输出为:

相关文章:

  • 计算机毕业设计Java物流信息管理系统(源码+系统+mysql数据库+Lw文档)
  • [CSS]CSS 的背景
  • 大数据ClickHouse进阶(六):Distributed引擎深入了解
  • PyTorch、TensorFlow和Jax构建神经网络模型的标准化流程
  • 【最详细demo】雪花算法详细解释
  • 基于JavaSwing开发扫雷小游戏(不同版本) 课程设计 大作业
  • 【云原生 | Kubernetes 系列】---Ceph集群安装部署
  • 分组卷积/转置卷积/空洞卷积/反卷积/可变形卷积/深度可分离卷积/DW卷积/Ghost卷积/
  • java计算机专业招聘网站计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  • 如何用Python自动爬取全国30+城市地铁图数据?
  • 手把手教大家编译 flowable 源码
  • 2022主流内网穿透技术分享(含NAS)
  • 常见遍历方法 for循环、forEach、map、filter、find、findIndex、some、every
  • STM32国产替代方案
  • 学js的第十七天
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Bootstrap JS插件Alert源码分析
  • C++类的相互关联
  • create-react-app项目添加less配置
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • java2019面试题北京
  • PHP的Ev教程三(Periodic watcher)
  • php的插入排序,通过双层for循环
  • python 学习笔记 - Queue Pipes,进程间通讯
  • Python_OOP
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • 从伪并行的 Python 多线程说起
  • 普通函数和构造函数的区别
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 数组的操作
  • 用Canvas画一棵二叉树
  • 自定义函数
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​520就是要宠粉,你的心头书我买单
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (python)数据结构---字典
  • (vue)页面文件上传获取:action地址
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)ssm码农论坛 毕业设计 231126
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (转)人的集合论——移山之道
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • ... 是什么 ?... 有什么用处?
  • .net core 控制台应用程序读取配置文件app.config
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .netcore如何运行环境安装到Linux服务器
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • .NET与 java通用的3DES加密解密方法
  • [ C++ ] STL_list 使用及其模拟实现
  • [1127]图形打印 sdutOJ
  • [android] 手机卫士黑名单功能(ListView优化)
  • [Android]Tool-Systrace