Pandas 如何筛选包含特定字符的列
问题提出:
比如有一个三百多列的数据集,想要快速找到包含xxx的列,这里有三种方法
if判断+列表解析式
[xforxindf.columnsif'xxx'inx]
str.contain()+列表解析式
[xforxindf.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'])
likelike='xxx'等同‘xxx'inlabels
regex正则表达式,输入字符串pattern
axis表示作用的轴
更多示例见官网:DataFramefilter函数
补充:python-pandas如何选取满足条件的特定的行和列
我就废话不多说了,大家还是直接看代码吧~
importpandasaspd 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)
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。