欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

使用Pandas进行数据分析

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

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

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

# 得到Dataframe中某个单元格的单个值df.loc['行名称','列名称']# 得到一个Series(这里传入的列名是一个值列表)df.loc['行名称',['列名称_1','列名称_2']]

2、使用值列表批量查询

# 得到一个Dataframedf.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中使用函数时只需要输入函数名即可,函数本身也可以当成变量传递,其参数取决于外部的变量。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。