栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

(二)使用Pandas进行数据分析 - 查询数据的几种方法

(二)使用Pandas进行数据分析 - 查询数据的几种方法

Pandas查询数据的几种方法
    df.loc方法,根据行、列的标签值查询   (# .loc既能查询,又能覆盖写入)df.iloc方法,根据行、列的数字位置查询df.where方法df.query方法
Pandas使用df.loc查询数据的方法
    使用单个label值查询数据使用值列表批量查询数据使用数值区间进行范围查询使用条件表达式查询调用函数查询
Attention!

以上查询方法,既适用于行,也适用于列注意观察降维 Dataframe > Series > Value 1. 使用单个label值查询数据

每一行和每一列,都可以只传入单个值,实现精确匹配(这里可以发现降维的效果)

# 得到Dataframe中某个单元格的单个值
df.loc['行名称','列名称']

# 得到一个Series(这里传入的列名是一个值列表)
df.loc['行名称',['列名称_1','列名称_2']]
2. 使用值列表批量查询
# 得到一个Dataframe
df.loc[['行名称_1','行名称_2'],['列名称_1','列名称_2']]
3. 使用数值区间进行范围查询

这里注意,应用于 loc 的区间既包含开始,也包含结束。

# 行index按区间
df.loc['行名称_1':'行名称_2','列名称']

# 列index按区间
df.loc['行名称','列名称_1':'列名称_2']

# 行列index均按区间
df.loc['行名称_1':'行名称_2','列名称_1':'列名称_2']

这里我们可以看到,传入的行、列值不再是一个列表,而是以  “ :” 连接的一个区间,并且需要注意的是传入的值并不是索引号,而是索引标签值,按照行、列在Dataframe中的顺序进行区间分割

4. 使用条件表达式查询

使用条件表达式可以返回一个布尔列表,这个列表的长度等于行数或者列数(一般常用于行)

# 进行一个简单的查询,温度低于10度的所有记录
df.loc[df['WenDu'] < 10,:] # df['WenDu']取出温度这一列进行条件匹配,后面的冒号代表查询所有列

# 多条件查询
df.loc[(df['WenDu'] < 10) & (df['WenDu'] > 0),:]

df['WenDu'] < 10 返回的是一个包含布尔值的Series, < 10 的记录为True,反之为False。

5. 调用函数查询
# 直接写 lambda 表达式
df.loc[lambda df : (df['WenDu'] < 10) & (df['WenDu'] > 0),:]

当按照行进行筛选时,loc方法会将每一行的Series传给lambda的df变量,同样会得到一个布尔结果,用于筛选行(或列)数据。

也可以自己编写函数,但要注意的是在loc中使用函数时只需要输入函数名即可,函数本身也可以当成变量传递,其参数取决于外部的变量。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/741938.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号