pandas数据查询(数值列表区间条件函数)
Posted spp666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas数据查询(数值列表区间条件函数)相关的知识,希望对你有一定的参考价值。
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数据查询(数值列表区间条件函数)的主要内容,如果未能解决你的问题,请参考以下文章
pandas基于applymap函数和lambda条件判断并基于规则函数更新dataframe中所有数据列数值内容的值(Conditionally updating values in pandas
pandas使用query函数查询dataframe指定数据列的内容(数值)不包含在特定列表中的数据行(not contain in list)
pandas使用query函数查询dataframe指定数据列的内容(数值)包含在特定列表中的数据行(select rows which column values contain in list)
pandas将列表list插入到dataframe的单元格中pandas使用read_csv函数读取文件并设置保留数值的前置0( leading zeroes)