
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
提示:这里可以添加本文要记录的大概内容:
视频链接:=4
pandas数据查询,按数值、列表、区间、条件、函数五种方式
提示:以下是本篇文章正文内容,下面案例可供参考
视频链接:=4
df.loc方法:根据行、列的标签值查询,df.loc既可以查询,可以覆盖写入
代码如下(示例):
import numpy as np
import pandas as pd
dfad_excel("./data/test.xls")#测试数据
#设定某一列(日期)为索引,方便按照日期筛选
df.set_index("日期",inplace=True)
#替换最高温度列的后缀℃,首先":"是为了筛选出所有的行,再找到“最高温度”这一列,再把它替换成
df.loc[:,"最高温度"]=df["最高温度"].place("℃","").astype("int32")
df.loc[:,"最低温度"]=df["最低温度"].place("℃","").astype("int32")
#以上数据处理完成
a可以使用单个label值查询数据
df.loc['2018-01-03',"最高温度"]
#查找索引为20180103的最高温度,结果就是一个单个的数字32
df.loc['2018-01-03',["最高温度","最低温度"]]
#这样返回的是一个series
b使用值列表批量查询
df.loc[['2018-01-03','2018-01-04','2018-01-05'],"最高温度"]
#查找索引为上面3天的最高温度,结果就是series
df.loc[['2018-01-03','2018-01-04','2018-01-05'],["最高温度","最低温度"]]
#这样返回的是一个dataframe
c使用数值区间进行范围查询
df.loc['2018-01-03':'2018-01-05',"最高温度"]
#查找按照行的index的区间
df.loc['2018-01-03',"最高温度":"最低温度"]
#查找按照列的index的区间
df.loc['2018-01-03':'2018-01-05',"最高温度":"最低温度"]
#行、列区间都有
d使用条件表达式查询
df.loc[df.loc["最高温度"]<10,:]
#查找最高温度小于10的列表,这样使用的条件是bool运算df.loc[]<10的列表长度等于行数或列数
df.loc[['2018-01-03','2018-01-04','2018-01-05'],["最高温度","最低温度"]]
#这样返回的是一个dataframe#复杂的条件查询,组合条件用&,每个条件判断得带括号
df.loc[(df.loc["最高温度"]<30)&(df.loc["最低温度"]>15)&(df.loc["风向"]=="北风"),:]
e调用函数查询
#使用匿名函数lambda表达式,举例lambda x: x*2,意思是输出x,x=x*2
df.loc[lambda df :(df.loc["最高温度"]<30)&(df.loc["最低温度"]>15),:]#也可以自己编写函数后再查询
def qurry_df(df):return df.index.str.startswith('2018-09')&df["最高温度"]<30
df.loc[query_df,:]
提示:这里对文章进行总结:
loc[]方法有很多种应用,笔记看不懂就看视频,视频说得蛮清楚的
本文发布于:2024-03-03 23:59:34,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/1709481713117541.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
| 留言与评论(共有 0 条评论) |