zoukankan      html  css  js  c++  java
  • 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,:]
  • 相关阅读:
    js字符串使用占位符拼接
    C#解析json字符串总是多出双引号的原因分析及解决办法
    JS 正则验证字符串中是否含有数字
    不错的MVC文章
    Js 更换html同一父元素下子元素的位置
    团队任务个人博客--20160426
    《构建之法》阅读笔记3
    团队任务个人博客20160425
    团队任务个人博客20160424
    软件工程进度条-第八周
  • 原文地址:https://www.cnblogs.com/spp666/p/11846892.html
Copyright © 2011-2022 走看看