码迷,mamicode.com
首页 > 其他好文 > 详细

pandas数据查询(数值、列表、区间、条件、函数)

时间:2019-11-13 11:26:42      阅读:944      评论:0      收藏:0      [点我收藏+]

标签:表达式   class   port   等于   def   lam   数据查询   code   范围查询   

import pandas as pd

# 0 读取数据
df = pd.read_csv("文件路径")#例子是北京一年的天气情况
df.head()#查看表头
# 设定索引为日期,方便按日期进行查询
df.set_index(ymd,inplace = True)
print("df.index")#查询索引是否修改成功
# 替换掉温度的后缀C
df.loc[:,"bWenDu"] = df["bWenDu"].str.replace("C","").astype("int32")
df.loc[:,"yWenDu"] = df["yWenDu"].str.replace("C","").astype("int32")

# 1 使用单个label值查询数据
# 行或列,都可以只传入单值,实现精确匹配
df.loc["2018-01-06",bWenDu]  #得到单个值
df.loc["2018-06-06",["bWenDu","yWenDu"]]#得到一个Series

# 2 使用值列表批量查询
df.loc[[2018-01-06,2018-06-06,2018-01-16],bWenDu]  #得到Series
df.loc[[2018-01-06,2018-06-06,2018-01-16],["bWenDu","yWenDu"]]#得到DataFrame

# 3 使用数值区间进行范围查询(既包含开始,也包含结束)
df.loc[2018-01-06:2018-01-16,bWenDu]#
行index按区间查询
df.loc[2018-01-06,bWenDu:fengxiang]#列index按区间查询
df.loc[2018-01-06:2018-01-16,bWenDu:fengxiang]

# 4 使用条件表达式查询(bool列表的长度等于行数或列数)
df.loc[df.[yWenDu]<-10,:] #简单条件查询,最低温度低于-10的列表

# 复杂条件查询,查一下想要的天气
df.loc[(df.[bWenDu]<=30)&(df.[yWenDu]>=15)&(df.[tianqi]==)&(df[aqilevel]==1),:]

# 5 调用函数查询
# 直接写lambda表达式
df.loc[lambda df : (df.[bWenDu]<=30)&(df.[yWenDu]>=15),:]
# 自己编写函数,查询9月份,空气质量好的数据
def query_my_datas(df):
    return df.index.str.startswith(2018-09)&df[tianqi] == 
df.loc[query_my_datas,:]

 

pandas数据查询(数值、列表、区间、条件、函数)

标签:表达式   class   port   等于   def   lam   数据查询   code   范围查询   

原文地址:https://www.cnblogs.com/spp666/p/11846892.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!