这篇文章主要介绍“Pandas数据查询方法df.loc()怎么使用”,在日常操作中,相信很多人在Pandas数据查询方法df.loc()怎么使用问题上存在疑惑,小编查阅了各式资料...
这篇文章主要介绍“Pandas数据查询方法df.loc()怎么使用”,在日常操作中,相信很多人在Pandas数据查询方法df.loc()怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Pandas数据查询方法df.loc()怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
一、写在前面
pandas常用的查询函数有:df.loc()
,df.iloc()
,df.where()
,de.query()
;
函数 | 功能 |
---|
df.loc() | 根据行,列的标签进行查询 |
df.iloc() | 根据行,列的数字位置进行查询 |
df.where() | 可以根据条件返回满足需求的结果 |
de.query() | 可以根据条件返回满足需求的结果 |
以上的几种方法,都可以实现相同的功能,所以我们能够熟练的掌握其中一个就好,这里我推荐df.loc()
,因为这个函数可以实现的功能是最多的,一般的应用场景,只要会这个就完全够用了;
二、查询方法:df.loc()
pandas通常碰到的查询需求,有如下五种:按数值,列表,区间,条件,函数五种方法进行查询;
使用的数据如下,大家可以复制到本地进行练习:
Date,天气,高温,低温,风向,风速
2020/7/16,晴,26,21,东风,2
2020/7/17,多云,25,21,西风,3
2020/7/20,小雨,24,15,东北风,5
2020/7/21,多云转晴,22,17,东风,2
2020/7/22,多云,20,16,西风,1
2020/7/23,雷阵雨,20,20,东北风,3
2020/7/24,多云,26,17,西南风,2
2020/7/27,小雨,26,17,东风,3
2020/7/28,多云转晴,25,24,西风,5
2020/7/29,晴,24,23,东北风,2
2020/7/30,晴,22,20,东风,2
2020/7/31,晴,26,22,东风,3
2020/8/3,晴,25,22,西风,2
2020/8/4,多云转晴,24,16,东北风,3
2020/8/5,多云,22,14,东风,5
2020/8/6,雷阵雨,20,12,西风,2
2020/8/7,小雨,20,13,东北风,1
2020/8/10,多云转晴,26,22,西南风,3
读入数据:
import pandas as pd
data_path_2=r"E:\\VSCODE\\2_numpy_pandas\\pandas\\data_select.csv"
df=pd.read_csv(data_path_2,encoding='gbk') # 这里因为我是用Excel保存的csv,所以编码格式是gbk, 大部分时候使用UTF-8
2.1 查询单个值
通常情况下,使用df.loc()
时,只要传入行列名即可返回要查询的值,比如:我们需要查询 2020/7/28 的天气,可以通过:df.loc['2020-7-28','天气']
来查询,然后我们会发现报错:KeyError: '2020-7-28'
; 这里报错的原因是:我们在读取数据的时候,没有将日期设置为索引值;所以我们需要这样做:
方法一:在读入数据的时候设置index
import pandas as pd
data_path_2=r"E:\\VSCODE\\2_numpy_pandas\\pandas\\data_select.csv"
df=pd.read_csv(data_path_2,encoding='gbk',index_col='Date') # 在这里设置index_col
df=df.dropna(how="all",axis='rows')
print(df.loc['2020/7/28','天气'])
![Pandas数据查询方法df.loc()怎么使用](https://1eqimg.oss-cn-shenzhen.aliyuncs.com/upload/20240324/u002dabtutt.png)
方法二:读入数据后,设置index
import pandas as pd
data_path_2=r"E:\\VSCODE\\2_numpy_pandas\\pandas\\data_select.csv"
df=pd.read_csv(data_path_2,encoding='gbk')
df=df.dropna(how="all",axis='rows')
df = df.set_index(['Date']) # 设置index
print(df.loc['2020/7/28','天气'])
![Pandas数据查询方法df.loc()怎么使用](https://1eqimg.oss-cn-shenzhen.aliyuncs.com/upload/20240324/2osqguulczd.png)
2.2 查询列表对应的值
df.loc[['2020/7/28','2020/7/29','2020/7/30'],'天气']
![Pandas数据查询方法df.loc()怎么使用](https://1eqimg.oss-cn-shenzhen.aliyuncs.com/upload/20240324/fihcclaeg02.png)
df.loc[['2020/7/28','2020/7/29','2020/7/30'],['天气','高温','低温']]
![Pandas数据查询方法df.loc()怎么使用](https://1eqimg.oss-cn-shenzhen.aliyuncs.com/upload/20240324/mnkscawiafg.png)
2.3 查询区间内的结果
可以使用 : 来查询区间内的结果,行与列均可以使用,举例如下:
df.loc['2020/7/28':'2020/8/3','天气':'风速']
![Pandas数据查询方法df.loc()怎么使用](https://1eqimg.oss-cn-shenzhen.aliyuncs.com/upload/20240324/uxx501p4rxq.png)
2.4 条件查询
df.loc[df['低温']>22,:] # 后面的冒号指所有的列
![Pandas数据查询方法df.loc()怎么使用](https://1eqimg.oss-cn-shenzhen.aliyuncs.com/upload/20240324/5o02xcm5kyf.png)
df.loc[(df['低温']<22) & (df['高温']>23) & (df['天气']=='晴'),:]
![Pandas数据查询方法df.loc()怎么使用](https://1eqimg.oss-cn-shenzhen.aliyuncs.com/upload/20240324/odbgdfxnnyr.png)
2.5 按照函数要求查询
方法一:使用上面的条件查询的方法
df.loc[(df.index.str.startswith('2020/7') & (df['天气']=='晴'))]
![Pandas数据查询方法df.loc()怎么使用](https://1eqimg.oss-cn-shenzhen.aliyuncs.com/upload/20240324/rjrctw4fpf4.png)
方法二:使用函数查询的方法
def func(df):
return df.index.str.startswith('2020/7') & (df['天气']=='晴')
df.loc[func,:]
![Pandas数据查询方法df.loc()怎么使用](https://1eqimg.oss-cn-shenzhen.aliyuncs.com/upload/20240324/33rgmhm5s5q.png)
到此,关于“Pandas数据查询方法df.loc()怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注捷杰建站网站,小编会继续努力为大家带来更多实用的文章!