Pandas 如何筛选包含特定字符的列

问题提出:

比如有一个三百多列的数据集,想要快速找到包含xxx的列,这里有三种方法

if判断+列表解析式

[x for x in df.columns if 'xxx' in x]

str.contain()+列表解析式

[x for x in df.columns[df.columns.str.contain('xxx')]]

filter函数

df.filter(like='xxx').columns

关于filter,这里可以多说一句,除了like匹配之外,还支持正则表达式匹配,参数为regex。

官方api上给出了filter更详细的用法,除了过滤列名外,还可以在行、列上进行筛选,filter全部的参数如下:

item:接收list类型参数,保留参数内项目的标签,举例

# 等同df[['a', 'b', 'c']]
df.filter(item=['a', 'b', 'c'])

like like='xxx' 等同 ‘xxx' in labels

regex 正则表达式,输入字符串pattern

axis 表示作用的轴

更多示例见官网:DataFrame filter函数

补充:python-pandas如何选取满足条件的特定的行和列

我就废话不多说了,大家还是直接看代码吧~

import pandas as pd
df1 = pd.read_csv("data/trans/bike_flow.csv")
# ['t_idx' 'r_idx' 'c_idx' 'bike_out_cnt' 'bike_in_cnt' 'flow_stay' 'flow_in' 'flow_out']
print(df1.columns.values)
# (23016, 8)
print(df1.shape)
# ['t_idx', 'bike_in_cnt']是取特定的列
# df1['bike_in_cnt'] > 10是取特定的行
df2 = df1[['t_idx', 'bike_in_cnt']][df1['bike_in_cnt'] > 10]
# (328, 2)
print(df2.shape)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • 使用pandas实现筛选出指定列值所对应的行

    在pandas中怎么样实现类似mysql查找语句的功能: select * from table where column_name = some_value; pandas中获取数据的有以下几种方法: 布尔索引 位置索引 标签索引 使用API 假设数据如下: import pandas as pd import numpy as np df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(), 'B': 'one one

  • pandas 按日期范围筛选数据的实现

    pandas 是 python 中一个功能强大的库,这里就不再复述了,简单介绍下用日期范围筛选 pandas 数据. 日期转换 用来筛选的列是 date 类型,所以这里要把要筛选的日期范围从字符串转成 date 类型 比如我的数据包含列名为 trade_date,从 20050101 - 20190926 的数据,我要筛选出 20050606 - 20071016 的数据,那么,先如下转换数据类型: s_date = datetime.datetime.strptime('20050606',

  • pandas条件组合筛选和按范围筛选的示例代码

    1.从记录中选出所有fault_code列的值在fault_list= [487, 479, 500, 505]这个范围内的记录 record2=record[record['FAULT_CODE'].isin(fault_list)] 要用.isin 而不能用in,用 in以后选出来的值都是True 和False,然后报错: ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item()

  • pandas按条件筛选数据的实现

    pandas中对DataFrame筛选数据的方法有很多的,以后会后续进行补充,这里只整理遇到错误的情况. 1.使用布尔型DataFrame对数据进行筛选 使用一个条件对数据进行筛选,代码类似如下: num_red=flags[flags['red']==1] 使用多个条件对数据进行筛选,代码类似如下: stripes_or_bars=flags[(flags['stripes']>=1) | (flags['bars']>=1)] 常见的错误代码如下: 代码一: stripes_or_bars

  • 使用Pandas对数据进行筛选和排序的实现

    筛选和排序是Excel中使用频率最多的功能,通过这个功能可以很方便的对数据表中的数据使用指定的条件进行筛选和计算,以获得需要的结果.在Pandas中通过.sort和.loc函数也可以实现这两 个功能..sort函数可以实现对数据表的排序操作,.loc函数可以实现对数据表的筛选操作.本篇文章将介绍如果通过Pandas的这两个函数完成Excel中的筛选和排序操作. 首选导入需要使用的Pandas库和numpy库,读取并创建数据表,将数据表命名为lc. import pandas as pd impo

  • 使用pandas库对csv文件进行筛选保存

    这个操作现在看来真没啥难的,但是我找相关的资料真的找了好久. 多数大佬都是直接pandas官网甩我脸上,然后举一个入门级的例子. https://pandas.pydata.org/docs/reference/index.html 首先导入pandas库 import pandas as pd 然后使用read_csv来打开指定的csv文件 df = pd.read_csv('./IP2LOCATION.csv',encoding= 'utf-8') 这个函数里面需要写入csv文件的路径,如果

  • Pandas 如何筛选包含特定字符的列

    问题提出: 比如有一个三百多列的数据集,想要快速找到包含xxx的列,这里有三种方法 if判断+列表解析式 [x for x in df.columns if 'xxx' in x] str.contain()+列表解析式 [x for x in df.columns[df.columns.str.contain('xxx')]] filter函数 df.filter(like='xxx').columns 关于filter,这里可以多说一句,除了like匹配之外,还支持正则表达式匹配,参数为re

  • python pandas数据处理之删除特定行与列

    目录 dropna() 方法过滤任何含有缺失值的行 方法一:dropna() 其他参数解析 方法二:替换并删除,Python pandas 如果某列值为空,过滤删除所在行数据 总结 dropna() 方法过滤任何含有缺失值的行 pandas.DataFrame里,如果一行数据有任意值为空,则过滤掉整行,这时候使用dropna()方法是合适的.下面的案例,任意列只要有一个为空数据,则整行都干掉.但是我们常常遇到的情况,是根据一个指标(一列)数据的情况,去过滤行数据,类似Excel里面的过滤漏斗,怎

  • Pandas过滤dataframe中包含特定字符串的数据方法

    假如有一列全是字符串的dataframe,希望提取包含特定字符的所有数据,该如何提取呢? 因为之前尝试使用filter,发现行不通,最终找到这个行得通的方法. 举例说明: 我希望提取所有包含'Mr.'的人名 1.首先将他们进行字符串化,并得到其对应的布尔值: >>> bool = df.str.contains('Mr\.') #不要忘记正则表达式的写法,'.'在里面要用'\.'表示 >>> print('bool : \n', bool) 2.通过dataframe的

  • Python 包含汉字的文件读写之每行末尾加上特定字符

    最近,接手的项目里,提供的数据文件格式简直让人看不下去,使用pandas打不开,一直是io error.仔细查看,发现文件中很多行数据是以"结尾,然而其他行缺失,因而需求也就很明显了:判断每行的结尾是否有",没有的话,加上就好了. 采用倒叙的方式好了,毕竟很多人需要的只是一个快速的解决方案,而不是一个why. 解决方案如下: b = open('b_file.txt', w) with open('a_file.txt', 'r') as lines: for line in line

  • pandas数据处理基础之筛选指定行或者指定列的数据

    pandas主要的两个数据结构是:series(相当于一行或一列数据机构)和DataFrame(相当于多行多列的一个表格数据机构). 本文为了方便理解会与excel或者sql操作行或列来进行联想类比 1.重新索引:reindex和ix 上一篇中介绍过数据读取后默认的行索引是0,1,2,3...这样的顺序号.列索引相当于字段名(即第一行数据),这里重新索引意思就是可以将默认的索引重新修改成自己想要的样子. 1.1 Series 比方说:data=Series([4,5,6],index=['a',

  • pandas.DataFrame中提取特定类型dtype的列

    目录 select_dtypes()的基本用法 指定要提取的类型:参数include 指定要排除的类型:参数exclude pandas.DataFrame为每一列保存一个数据类型dtype. 要仅提取(选择)特定数据类型为dtype的列,请使用pandas.DataFrame的select_dtypes()方法. 以带有各种数据类型的列的pandas.DataFrame为例. import pandas as pd df = pd.DataFrame({'a': [1, 2, 1, 3],  

  • pandas.DataFrame选取/排除特定行的方法

    pandas.DataFrame选取特定行 使用Python进行数据分析时,经常要使用到的一个数据结构就是pandas的DataFrame,如果我们想要像Excel的筛选那样,只要其中的一行或某几行,可以使用isin()方法,将需要的行的值以列表方式传入,还可以传入字典,指定列进行筛选. >>> df = pd.DataFrame([['GD', 'GX', 'FJ'], ['SD', 'SX', 'BJ'], ['HN', 'HB', 'AH'], ['HEN', 'HEN', 'HL

  • python使用pandas实现筛选功能方式

    目录 1 筛选出数据的指定几行数据 2 筛选出数据某列为某值的所有数据记录 3 模式匹配 4 范围区间值筛选 5 获取某一行某一列的某个值 6 获取原始的numpy二维数组 7 根据条件得到某行元素所在的位置 8 元素位置筛选 9. 删除多行/多列 10 to_datetime将字符串格式转化为日期格式 11 apply() 函数 12 map() 函数 参考 总结 1 筛选出数据的指定几行数据 data=df.loc[2:5] #这里的[2:5]表示第3行到第5行内容,[]第一个起始是0,表示

  • js实现统计字符串中特定字符出现个数的方法

    本文实例讲述了js实现统计字符串中特定字符出现个数的方法.分享给大家供大家参考,具体如下: //js统计字符串中包含的特定字符个数 function getPlaceholderCount(strSource) { //统计字符串中包含{}或{xxXX}的个数 var thisCount = 0; strSource.replace(/\{[xX]+\}|\{\}/g, function (m, i) { //m为找到的{xx}元素.i为索引 thisCount++; }); return th

随机推荐