分享
pandas:数据筛选的8个操作
输入“/”快速插入内容
pandas:数据筛选的8个操作
🔗 原文链接:
https://blog.csdn.net/joker_zsl/art...
⏰ 剪存时间:2022-09-22 22:41:28 (UTC+8)
✂️ 本文档由
飞书剪存
一键生成
pandas:数据筛选的8个操作
文章来源于 公众号 Python数据科学 的文章
pandas 筛选数据的 8 个骚操作
,是个很不错的系列,感兴趣的同学可以移步去学习。
数据分析最常用到的就是查询筛选,按各种条件、各种
维度
以及组合挑出我们想要的数据,以方便我们分析挖掘,这里总结了日常查询和筛选常用的操作。
本文采用
sklearn
的
boston
数据举例介绍。
代码块
Python
from sklearn import datasets
import pandas as pd
boston = datasets.load_boston()
df = pd.DataFrame(boston.data, columns=boston.feature_names)
1. [ ]
第一种是最快捷方便的,直接在dataframe的
[]
中写筛选的条件或者组合条件。
比如,想要筛选出大于
NOX
这变量平均值的所有数据,然后按
NOX
降序排序。
代码块
Python
df[df['NOX']>df['NOX'].mean()].sort_values(by='NOX',ascending=False).head()
也可以使用组合条件,条件之间使用逻辑符号
& |
等。比如下面这个例子除了上面条件外再加上且条件
CHAS为1
,注意逻辑符号分开的条件要用
()
隔开。
代码块
Python
df[(df['NOX']>df['NOX'].mean()) & (df['CHAS'] ==1)].sort_values(by='NOX',ascending=False).head()
2. loc/iloc
除
[]
之外,
loc/iloc
应该是最常用的两种查询方法了。
loc
按标签值(列名和行索引取值)访问,
iloc
按数字索引访问,均支持单值访问或切片查询。除了可以像
[]
按条件筛选数据以外,
loc
还可以指定返回的列变量,
从行和列两个维度筛选。
比如下面这个例子,按条件筛选出数据,并筛选出指定变量,然后赋值。
代码块
Python
df.loc[(df['NOX']>df['NOX'].mean()),['CHAS']] = 2
3. isin
上面我们筛选条件
< > == !=
都是个范围,但很多时候是需要锁定某些具体的值的,这时候就需要
isin
了。比如我们要限定
NOX
取值只能为
0.538,0.713,0.437
中时。
代码块
Python
df.loc[df['NOX'].isin([0.538,0.713,0.437]),:].sample(5)