Pandas(二)数据筛选

3 篇文章 0 订阅
3 篇文章 0 订阅

 数据清洗

  • 赋值:
#Nan值
data.fillna(values,method = 'ffill/bfill','axis=0/1')

values: 可以使用标量,变量,方法,字典等

method = 'ffill' 补充行/列的前一个值,method = 'bfill' 补充行/列的后一个值

axis默认为0,按行处理,axis = 1 按列处理

实例:

method = 'ffill':

method = 'bfill' :

 

  • 删除:
  • Nan值: 
#Nan值
df.dropna(how='any/all', axis = 0/1)

how = any: 行/列中任意值为Nan,删除整行/列,how = all: 行/列中所有值为Nan,删除整行/列

实例:

how = 'all' :

how = 'any': 

  •  删除重复值:
#重复值
df.drop_duplicates(keep = 'first/last')

keep 默认为first,保留第一个观测值,keep = 'last' 保留最后一个观测值

  • 替换:
df.replace('查找值','替换值')

值的类型:可为列表/标量/字典等

数值格式:

df[item] = df[item].astype('float') 

数据筛选

  • 索引筛选 
#iloc筛选
df.iloc[:10,:8] #筛选0-9行,0-7列的数据的数据

#loc筛选
df.loc[:10,:8] #筛选行索名称引为0-9,列索引名称为0-7的数据


实例:

iloc根据数剧列实际的位置进行筛选: 

 

loc根据行列对应的名称进行筛选:

 

 注:":"代表全部数据,:2代表2行/列以前的全部数据,2:代表2行/列以后的全部数据

  •  精确查找

loc+条件:

#isin筛选
df[df['item1'].isin(['condition1','condition2'])]

#loc筛选+条件(或)
df.loc[(df[item1] == 'condition1')|(df[item1] == 'conditon2')]

#loc筛选+条件(且)
df.loc[(df[item1] == 'condition1')&(df[item1] == 'conditon2')]



实例:

loc+条件中:“&”是并的关系

 

 loc+条件中"|”是并的关系

 

 

 query条件筛选:

#query筛选
df.query('colume1 == ["condition1","condition2"]')
df.query('colume1 == "condition1" or colume1 == "condition2"')

实例:

单一字段多条件筛选: 

 

 多字段多条件筛选:

 

 'or'为或的关系,可以替换为'and'且的关系

注:query函数中需要注意条件需要用 ' ' 括起来,中间的文本条件需要用 " " 括起来 

  • 模糊查找  
#模糊筛选
#1.类似SQL中like'%string1%'
df.loc[df[item1].str.contains('string1'|'string2')]

#2.类似SQL中like'string1%'
df.loc[df[item1].str.startwith('string1')]

#3.类似SQL中like'%string1'
df.loc[df[item1].str.endwith('string1')]

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Charliewyzzzz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值