DataFrame 数据筛选
pandas DataFrame 数据筛选
- DataFrame 数据筛选
- 数据筛选基本格式
- contains
- isin
- 多个条件与或
- 数据筛选进阶
- groupby
- agg
- np.where
DataFrame 数据筛选
近期使用pandas比较频繁,在进行数据处理的时候经常要用到dataframe的数据筛选功能,这里做个小结。
数据有以下的格式:
columns = [“blockNumber”,“timestamp”,“transactionHash”,“from”,“to”,“creates”,……“isError”]
数据筛选基本格式
初级筛选:
==, !=, >, >=, <, <=
主要用于简单的判断
contains
选取"from"列数据,最后一位为0或a的数据。(数据类型默认str)
data[data['from'].str[-1:].str.contains('0|a')]
contains语句中,可以以’|'符号为分割,添加多个候选项。
这里由于要只选最后一位,需要使用两次 str 方法。
isin
已有一个取值数组,目标是选择数据中,"from"数据的值在取值数组内的数据
targetList = ['0x12','0x1a','0x98', ... , '0x82']
data[data['from'].isin(targetList)]
这里targetList
最好保持list
的数据类型,使用pandas.Series
可能会有意外的错误
反过来,如果目标是选择数据中,"from"数据的值不在取值数组内的数据
targetList = ['0x12','0x1a','0x98', ... , '0x82']
data[`data['from'].isin(targetList)]
仔细注意,这里是在前面加个反引号 ` ,通过反引号来表示取反
多个条件与或
选取的是数据中,"from"列数据的取值在目标数组内,或者"to"列数据取值最后一位为0或a的数据
targetList = ['0x12','0x1a','0x98', ... , '0x82']
data[(data['from'].isin(targetList)) | (data['to'].str[-1:].str.contains('0|a'))]
选取的是数据中,"from"列数据的取值在目标数组内,并且"to"列数据最后一位为0或a的数据
targetList = ['0x12','0x1a','0x98', ... , '0x82']
data[(data['from'].isin(targetList)) & (data['to'].str[-1:].str.contains('0|a'))]
如果是多个条件并列在一起,每个条件都需要用括号括起来。
数据筛选进阶
这里主要介绍一些,跟数据库操作相似的数据筛选,假设数据格式如下:
columns = ['from', 'to', 'weight'] # from,to 都是 str数据,weight是 int 数据
groupby
这里,假设一个需求是,统计from中的值,出现的次数,我们很容易想到可以通过value_counts() 方法直接获取:
pd.DataFrame(data['from'].value_counts())
这里value_counts()得到的是一个pandas.Series
那么更进一步,如果想知道"from"中的每个取值,对应的"to"取值跟"weight"取值分别是多少,可以使用:
pd.DataFrame(data.groupby('from'))
agg
如果要统计的是 from 中的值,每个值对应的weight
总和是多少,这时候需要使用到groupby
跟agg
pd.DataFrame(data.groupby('from').agg('sum'))
np.where
假设现在的需求是,将from跟to的数据,每一行按照 from > to 的顺序交换(注意不是整列交换)。这时可以使用np.where
实现。
data['from'], data['to']= np.where(data['from'] > data['to'], [data['to'], data['from']], [data['from'], data['to']])
np.where
使用格式是:
np.where(condition, Yes, No)
condition
为True
时,取值为Yes
,为False
时,取值是No
DataFrame 数据筛选相关推荐
- pandas DataFrame数据筛选和切片
DataFrame数据筛选--loc,iloc,ix,at,iat 条件筛选 单条件筛选 选取col1列的取值大于n的记录: data[data['col1']>n] 筛选col1列的取值大于n ...
- 【pandas】--DataFrame数据筛选(二)
相关篇: DataFrame数据处理(一) dataframe高级用法三 一.数据选取 按索引标签 选取(loc做法) 按索引位置 选取(iloc做法) 1.1选取第1行的数据(选取单行数据) .lo ...
- Python中pandas.Dataframe数据筛选
Dataframe可以实现强大的数据筛选功能,下面简单举几个例子: # 创建一个DataFrame import pandas as pd import numpy as np df = pd.Dat ...
- dataframe数据筛选后求和
df1=df[(df['age']>10) & (df['age']<30)]['profit'].sum() 求age在10~30之间的profit之和
- R语言对dataframe进行行数据筛选(row selection)多种方案:使用R原生方法、data.table、dplyr等方案
R语言对dataframe进行行数据筛选(row selection)多种方案:使用R原生方法.data.table.dplyr等方案 目录
- R语言使用subset函数基于组合逻辑筛选dataframe符合条件的数据行(select observations)、并指定需要保留的dataframe数据列或者字段
R语言使用subset函数基于组合逻辑筛选dataframe符合条件的数据行(select observations).并指定需要保留的dataframe数据列或者字段 目录
- pandas获取dataframe数据列的数据类型、获取dataframe每类数据类型数据列的个数、使用select_dtypes函数、include参数以及exclude参数按照数据类型筛选数据
pandas获取dataframe数据列的数据类型.获取dataframe每类数据类型数据列的个数.使用select_dtypes函数.include参数以及exclude参数按照数据类型筛选数据 目 ...
- pandas基于列表内容对dataframe数据行进行筛选(isin函数)实战:Filter DataFrame rows on a list of values
pandas基于列表内容对dataframe数据行进行筛选(isin函数)实战:Filter DataFrame rows on a list of values 目录
- python dataframe 列筛选_pandas系列之DataFrame 行列数据筛选实例
一.对DataFrame的认知 DataFrame的本质是行(index)列(column)索引+多列数据. 为了简化理解,我们不妨换个思路- 现实中,为了简化对一件事物的描述,我们会选择几个特征. ...
最新文章
- Python十大装腔语法
- 复旦陈静静 | 把握当下,坚持热爱,与食物图像识别结缘的科研之路
- mysql同步出现错误
- 算法---------寻找重复的子树(Java版本)
- Mysql 授权控制
- 算法提高课-图论-单源最短路的综合应用-AcWing 342. 道路与航线:最短路dijkstra、拓扑排序 、综合题、好题
- Step by Step Setup Git Server on Windows with CopSSH + msysGit and Integrate Git with Visual Studio
- 清除ubuntu下缓存、软件安装包和多余内核
- suse系统关闭防火墙
- HDOJ-3790-最短路径问题 解题报告
- .NET(c#) 移动APP开发平台 - Smobiler(1)
- Spring 静态代理和动态代理
- 精讲RestTemplate第6篇-文件上传下载与大文件流式下载
- 2020移动apn接入点哪个快_最新联通上网卡APN的设置方法
- 中富金石投教怎么样?让专业投资创造更多财富机会
- 边云协同的优点_与云端握手 是时候谈谈边云协同这个边缘计算新风向了
- 一篇文章带你了解,App 测试工具
- AI测试】人工智能测试整体介绍——第五部分
- 高版本Android,鸿蒙2.0,debug安装解析失败
- 怎么用EDIUS将静帧图片做出动态特效