pandas.DataFrame排除特定行
使用Python进行数据分析时,经常要使用到的一个数据结构就是pandas的DataFrame
如果我们想要像Excel的筛选那样,只要其中的一行或某几行,可以使用isin()
方法,将需要的行的值以列表方式传入,还可以传入字典,指定列进行筛选。
但是如果我们只想要所有内容中不包含特定行的内容,却并没有一个isnotin()方法。我今天的工作就遇到了这样的需求,经常查找之后,发现只能换种方式使用isin()
来实现这个需求。
示例如下:
In [3]: df = pd.DataFrame([['GD', 'GX', 'FJ'], ['SD', 'SX', 'BJ'], ['HN', 'HB'
...: , 'AH'], ['HEN', 'HEN', 'HLJ'], ['SH', 'TJ', 'CQ']], columns=['p1', 'p2
...: ', 'p3'])
In [4]: df
Out[4]:
p1 p2 p3
0 GD GX FJ
1 SD SX BJ
2 HN HB AH
3 HEN HEN HLJ
4 SH TJ CQ
如果只想要p1为GD和HN的两行,可以这么做:
In [8]: df[df.p1.isin(['GD', 'HN'])]
Out[8]:
p1 p2 p3
0 GD GX FJ
2 HN HB AH
但是如果我们想要除了这两行之外的数据,就需要绕点路了。
原理是先把p1取出并转换为列表,然后再从列表中去不需要的行(值)去除,然后再在DataFrame中使用isin()
In [9]: ex_list = list(df.p1)
In [10]: ex_list.remove('GD')
In [11]: ex_list.remove('HN')
In [12]: ex_list
Out[12]: ['SD', 'HEN', 'SH']
In [13]: df[df.p1.isin(ex_list)]
Out[13]:
p1 p2 p3
1 SD SX BJ
3 HEN HEN HLJ
4 SH TJ CQ
pandas.DataFrame排除特定行的更多相关文章
- pandas.DataFrame 插入列和行
转载:www.360doc.com/content/17/0225/23/1489589_632032302.shtml 以csv实例文件操作插入DataFrame的行和列 文件名:example.c ...
- pandas Dataframe 取某行
In [1]: df = DataFrame(randn(5,2),index=range(0,10,2),columns=list('AB')) In [2]: df Out[2]: A B 0 1 ...
- pandas取dataframe特定行/列
1. 按列取.按索引/行取.按特定行列取 import numpy as np from pandas import DataFrame import pandas as pd df=DataFram ...
- pandas.DataFrame的pivot()和unstack()实现行转列
示例: 有如下表需要进行行转列: 代码如下: # -*- coding:utf-8 -*- import pandas as pd import MySQLdb from warnings impor ...
- [译]如何根据条件从pandas DataFrame中删除不需要的行?
问题来源:https://stackoverflow.com/questions/13851535/how-to-delete-rows-from-a-pandas-dataframe-based-o ...
- python – 基于pandas中的列中的值从DataFrame中选择行
如何从基于pandas中某些列的值的DataFrame中选择行?在SQL中我将使用: select * from table where colume_name = some_value. 我试图看看 ...
- 如何迭代pandas dataframe的行
from:https://blog.csdn.net/tanzuozhev/article/details/76713387 How to iterate over rows in a DataFra ...
- pandas DataFrame行或列的删除方法
pandas DataFrame的增删查改总结系列文章: pandas DaFrame的创建方法 pandas DataFrame的查询方法 pandas DataFrame行或列的删除方法 pand ...
- pandas dataframe重复数据查看.判断.去重
本文详解如何使用pandas查看dataframe的重复数据,判断是否重复,以及如何去重 dataframe数据样本: import pandas as pd df = pd.DataFrame({' ...
随机推荐
- H5 canvas的 width、height 与style中宽高的区别
Canvas 的width height属性 1.当使用width height属性时,显示正常不会被拉伸:如下 <canvas id="mycanvas" width=&q ...
- H3 BPM让天下没有难用的流程之功能介绍
H3 BPM10.0功能地图如下: 图:H3 BPM 功能地图 一.流程引擎 H3 BPM 流程引擎遵循WFMC 标准的工作流引擎技术,设计可运行的流程和表单,实现工作任务在人与人.人与系统.系统 ...
- Java 中获取类路径 classpath 的方法
System.out.println("++++++++++++++++++++++++"); String path = System.getProperty("jav ...
- java 字节流与字符流的区别
字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢?实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作 ...
- Impress.js上手 - 抛开PPT、制作Web 3D幻灯片放映
前言: 如果你已经厌倦了使用PPT设置路径.设置时间.设置动画方式来制作动画特效.那么Impress.js将是你一个非常好的选择. 用它制作的PPT将更加直观.效果也是嗷嗷美观的. 当然,如果用它来装 ...
- 最近在玩linux时 yum 遇到了问题
主要是软件源出现了问题 我做的方式可能比较粗暴 ls -l /etc/yum.repos.d/ /*查看软件源*/ rm -rf /etc/yum.repos.d/ /*全删了*/ m ...
- 【Knockout.js 学习体验之旅】(1)ko初体验
前言 什么,你现在还在看knockout.js?这货都已经落后主流一千年了!赶紧去学Angular.React啊,再不赶紧的话,他们也要变out了哦.身旁的90后小伙伴,嘴里还塞着山东的狗不理大蒜包, ...
- 【初探Spring】------Spring IOC(一)
IOC:Inversion of Control(控制反转).IOC它所体现的并不是一种技术,而是一种思想,一种将设计好的对象交给容器来管理的思想.IOC的核心思想就体现在控制.反转这两个词上面,要理 ...
- C++模板编程:如何使非通用的模板函数实现声明和定义分离
我们在编写C++类库时,为了隐藏实现,往往只能忍痛舍弃模版的强大特性.但如果我们只需要有限的几个类型的模版实现,并且不允许用户传入其他类型时,我们就可以将实例化的代码放在cpp文件中实现了.然而,当我 ...
- direction和unicode-bidi
在做多语言页面,接触过阿利伯语.希伯来语的同学肯定了解书写方向的重要性,包括我们五四运动前的书写顺序也是从右到左的.css中 unicode-bidi和direction属性决定了HTML或XML文字 ...