精华内容
下载资源
问答
  • 数据提取
    千次阅读
    2021-08-18 11:19:32

    1、数据预处理

    第四部分是数据的预处理,对清洗完的数据进行整理以便后期的统计和分析工作。主要包括数据表的合并,排序,数值分列,数据分组及标记等工作。

    1)数据表合并

    首先是对不同的数据表进行合并,我们这里创建一个新的数据表 df1,并将 df 和 df1 两个数据表进行合并。在 Excel 中没有直接完成数据表合并的功能,可以通过 VLOOKUP 函数分步实现。在 python 中可以通过 merge 函数一次性实现。

    下面建立 df1 数据表,用于和 df 数据表进行合并。

    1 #创建 df1 数据表

    2 df1=pd.DataFrame({‘id’:[1001,1002,1003,1004,1005,1006,1007,1008],

    3 ‘gender’:[‘male’,‘female’,‘male’,‘female’,‘male’,‘female’,‘male’,‘female’],

    4 ‘pay’:[‘Y’,‘N’,‘Y’,‘Y’,‘N’,‘Y’,‘N’,‘Y’,],

    5 ‘m-point’:[10,12,20,40,40,40,30,20]})

    使用 merge 函数对两个数据表进行合并,合并的方式为 inner,将两个数据表中共有的数据匹配到一起生成新的数据表。并命名为 df_inner。

    1#数据表匹配合并,inner 模式

    2df_inner=pd.merge(df,df1,how=‘inner’)

    除了 inner 方式以外,合并的方式还有 left,right 和 outer 方式。这几种方式的差别在我其他的文章中有详细的说明和对比。

    1#其他数据表匹配模式

    2df_left=pd.merge(df,df1,how=‘left’)3df_right=pd.merge(df,df1,how=‘right’)4df_outer=pd.merge(df,df1,how=‘outer’)

    2)设置索引列

    完成数据表的合并后,我们对 df_inner 数据表设置索引列,索引列的功能很多,可以进行数据提取,汇总,也可以进行数据筛选等。

    设置索引的函数为 set_index。

    1#设置索引列

    2df_inner.set_index(‘id’)

    3)排序(按索引,按数值)

    Excel 中可以通过数据目录下的排序按钮直接对数据表进行排序,比较简单。Python 中需要使用 ort_values 函数和 sort_index 函数完成排序。

    在 python 中,既可以按索引对数据表进行排序,也可以看制定列的数值进行排序。首先我们按 age 列中用户的年龄对数据表进行排序。

    使用的函数为 sort_values。

    1#按特定列的值排序

    2df_inner.sort_values(by=[‘age’])

    函数用来将数据表按索引列的值进行排序。

    1#按索引列排序

    2df_inner.sort_index()

    3)数据分组

    Excel 中可以通过 VLOOKUP 函数进行近似匹配来完成对数值的分组,或者使用“数据透视表”来完成分组。相应的 python 中使用 where 函数完成数据分组。

    Where 函数用来对数据进行判断和分组,下面的代码中我们对 price 列的值进行判断,将符合条件的分为一组,不符合条件的分为另一组,并使用 group 字段进行标记。

    1#如果 price 列的值>3000,group 列显示 high,否则显示 low

    2df_inner[‘group’] = np.where(df_inner[‘price’] > 3000,‘high’,‘low’)

    除了 where 函数以外,还可以对多个字段的值进行判断后对数据进行分组,下面的代码中对 city 列等于 beijing 并且 price 列大于等于 4000 的数据标记为 1。

    1#对复合多个条件的数据进行分组标记

    2df_inner.loc[(df_inner[‘city’] == ‘beijing’) & (df_inner[‘price’] >= 4000), ‘sign’]=1

    4)数据分列

    与数据分组相反的是对数值进行分列,Excel 中的数据目录下提供“分列”功能。在 python 中使用 split 函数实现分列。

    在数据表中 category 列中的数据包含有两个信息,前面的数字为类别 id,后面的字母为 size 值。中间以连字符进行连接。我们使用 split 函数对这个字段进行拆分,并将拆分后的数据表匹配回原数据表中。

    1 #对 category 字段的值依次进行分列,并创建数据表,索引值为 df_inner 的索引列,列名称为 category 和 size

    2 pd.DataFrame((x.split(’-’) for x in df_inner[‘category’]),index

    =df_inner.index,columns=[‘category’,‘size’])

    1#将完成分列后的数据表与原 df_inner 数据表进行匹配

    2df_inner=pd.merge(df_inner,split,right_index=True, left_index=True)

    2、数据提取

    第五部分是数据提取,也是数据分析中最常见的一个工作。这部分主要使用三个函数,loc,iloc 和 ix,loc 函数按标签值进行提取,iloc 按位置进行提取,ix 可以同时按标签和位置进行提取。下面介绍每一种函数的使用方法。

    1)按标签提取(loc)

    Loc 函数按数据表的索引标签进行提取,下面的代码中提取了索引列为 3 的单条数据。

    1#按索引提取单行的数值

    2df_inner.loc[3]3id 10044date 2013-01-05 00:00:005city shenzhen6category 110-C7age 328price 54339gender female10m-point 4011pay Y12group high13sign NaN14category_1 11015size C16Name: 3, dtype: object

    使用冒号可以限定提取数据的范围,冒号前面为开始的标签值,后面为结束的标签值。下面提取了 0 到 5 的数据行。

    1#按索引提取区域行数值

    2df_inner.loc[0:5]

    Reset_index 函数用于恢复索引,这里我们重新将 date 字段的日期设置为数据表的索引,并按日期进行数据提取。

    1#重设索引

    2df_inner.reset_index()

    1#设置日期为索引

    2df_inner=df_inner.set_index(‘date’)

    使用冒号限定提取数据的范围,冒号前面为空表示从 0 开始。提取所有 2013 年 1 月 4 日以前的数据。

    1#提取 4 日之前的所有数据

    2df_inner[:‘2013-01-04’]

    2)按位置提取(iloc)

    使用 iloc 函数按位置对数据表中的数据进行提取,这里冒号前后的数字不再是索引的标签名称,而是数据所在的位置,从 0 开始。

    1#使用 iloc 按位置区域提取数据

    2df_inner.iloc[:3,:2]

    iloc 函数除了可以按区域提取数据,还可以按位置逐条提取,前面方括号中的 0,2,5 表示数据所在行的位置,后面方括号中的数表示所在列的位置。

    1#使用 iloc 按位置单独提取数据

    2df_inner.iloc[[0,2,5],[4,5]]

    3)按标签和位置提取(ix)

    ix 是 loc 和 iloc 的混合,既能按索引标签提取,也能按位置进行数据提取。下面代码中行的位置按索引日期设置,列按位置设置。

    1#使用 ix 按索引标签和位置混合提取数据

    2df_inner.ix[:‘2013-01-03’,:4]

    4)按条件提取(区域和条件值)

    除了按标签和位置提起数据以外,还可以按具体的条件进行数据。下面使用 loc 和 isin 两个函数配合使用,按指定条件对数据进行提取 。

    使用 isin 函数对 city 中的值是否为 beijing 进行判断。

    1 #判断 city 列的值是否为 beijing

    2 df_inner[‘city’].isin([‘beijing’])

    3

    4 date

    5 2013-01-02 True

    6 2013-01-05 False

    7 2013-01-07 True

    8 2013-01-06 False

    9 2013-01-03 False

    10 2013-01-04 False

    11 Name: city, dtype: bool

    将 isin 函数嵌套到 loc 的数据提取函数中,将判断结果为 Ture 数据提取出来。这里我们把判断条件改为 city 值是否为 beijing 和 shanghai。如果是就把这条数据提取出来。

    1#先判断 city 列里是否包含 beijing 和 shanghai,然后将复合条件的数据提取出来。

    2df_inner.loc[df_inner[‘city’].isin([‘beijing’,‘shanghai’])]

    5)按筛选条件提取

    数值提取还可以完成类似数据分列的工作,从合并的数值中提取出制定的数值。

    1 category=df_inner[‘category’]

    2 0 100-A

    3 3 110-C

    4 5 130-F

    5 4 210-A

    6 1 100-B

    7 2 110-A

    8 Name: category, dtype: object

    9

    10 #提取前三个字符,并生成数据表

    11pd.DataFrame(category.str[:3])

    文章来源:网络 版权归原作者所有

    上文内容不用于商业目的,如涉及知识产权问题,请权利人联系小编,我们将立即处理

    更多相关内容
  • Python爬虫:数据提取

    千次阅读 2022-02-07 22:29:17
    Python爬虫之数据提取

    目录

    一、数据提取概述

    1. 响应内容的分类

    2. xml以及和html

    二、 数据提取:jsonpath模块

    三、数据提取:lxml模块


    一、数据提取概述

    1. 响应内容的分类

     在发送请求获取响应之后,可能存在多种不同类型的响应内容;而且很多时候,我们只需要响应内容中的一部分数据

    1.1 结构化的响应内容

    • json字符串:可以使用re、json等模块来提取特定数据

    示例:

    • xml字符串:可以使用re、lxml等模块来提取特定数据

    示例:

    <bookstore>
    <book category="COOKING">
      <title lang="en">Everyday Italian</title> 
      <author>Giada De Laurentiis</author> 
      <year>2005</year> 
      <price>30.00</price> 
    </book>
    <book category="CHILDREN">
      <title lang="en">Harry Potter</title> 
      <author>J K. Rowling</author> 
      <year>2005</year> 
      <price>29.99</price> 
    </book>
    <book category="WEB">
      <title lang="en">Learning XML</title> 
      <author>Erik T. Ray</author> 
      <year>2003</year> 
      <price>39.95</price> 
    </book>
    </bookstore>

    1.2 非结构化的响应内容  

    •  html字符串:可以使用re、lxml等模块来提取特定数据

    示例: 

     

    2. xml以及和html

    2.1 xml

    xml是一种可扩展标记语言,样子和html很像,功能更专注于对传输和存储数据

     示例:

    <bookstore>
    <book category="COOKING">
      <title lang="en">Everyday Italian</title> 
      <author>Giada De Laurentiis</author> 
      <year>2005</year> 
      <price>30.00</price> 
    </book>
    <book category="CHILDREN">
      <title lang="en">Harry Potter</title> 
      <author>J K. Rowling</author> 
      <year>2005</year> 
      <price>29.99</price> 
    </book>
    <book category="WEB">
      <title lang="en">Learning XML</title> 
      <author>Erik T. Ray</author> 
      <year>2003</year> 
      <price>39.95</price> 
    </book>
    </bookstore>

    上面的xml内容可以表示为下面的树结构: 

    2.2 xml和html的区别

    html:超文本标记语言,为了更好的显示数据,侧重点是为了显示;

    xml:可扩展标记语言,为了传输和存储数据,侧重点是在于数据内容本身。

    2.3 常用数据解析方法

     

    二、数据提取:jsonpath模块

    如果有一个多层嵌套的复杂字典,想要根据key和下标来批量提取value是比较困难的。jsonpath模块就能解决这个痛点,jsonpath可以按照key对python字典进行批量数据提取。

    jsonpath模块的安装

    pip install jsonpath

    使用方法

    from jsonpath import jsonpath
    ret = jsonpath(a, 'jsonpath语法规则字符串')

    jsonpath语法规则

     示例:

     json数据

    book_dict = { 
      "store": {
        "book": [ 
          { "category": "reference",
            "author": "Nigel Rees",
            "title": "Sayings of the Century",
            "price": 8.95
          },
          { "category": "fiction",
            "author": "Evelyn Waugh",
            "title": "Sword of Honour",
            "price": 12.99
          },
          { "category": "fiction",
            "author": "Herman Melville",
            "title": "Moby Dick",
            "isbn": "0-553-21311-3",
            "price": 8.99
          },
          { "category": "fiction",
            "author": "J. R. R. Tolkien",
            "title": "The Lord of the Rings",
            "isbn": "0-395-19395-8",
            "price": 22.99
          }
        ],
        "bicycle": {
          "color": "red",
          "price": 19.95
        }
      }
    }
    

    提取代码

    from jsonpath import jsonpath
    
    # 返回列表,如果取不到将返回False
    print(jsonpath(book_dict, '$..author')) 
    

    各项数据提取:

    三、数据提取:lxml模块

    • lxml模块可以利用XPath规则语法,来快速的定位HTML\XML 文档中特定元素以及获取节点信息(文本内容、属性值);

    • XPath (XML Path Language) 是一门在 HTML\XML 文档中查找信息的语言,可用来在 HTML\XML 文档中对元素和属性进行遍历

    • 提取xml、html中的数据需要lxml模块和xpath语法配合使用

    要想利用 lxml 模块提取数据,需要掌握xpath语法规则。在浏览器中可以使用xpath helper插件来测试 xpath 语法

    1. 谷歌浏览器xpath helper插件的安装和使用

    可以在chrome应用商城下载,如果无法下载也可以从下面我收藏在网盘的链接进行下载

    链接:https://pan.baidu.com/s/1cIRqSyUS0ZF4owPuYxcTwQ?pwd=meng 
    提取码:meng

    下载完成后,把文件的后缀名crx改为rar,然后解压;

    把解压后的文件夹拖入到已经开启开发者模式的chrome浏览器扩展程序界面

     重启浏览器后,访问url之后在页面中点击xpath图标,就可以使用了

    ps:如果是linux或macOS,直接将crx文件拖入已经开启开发者模式的chrome浏览器扩展程序界面。

    2. xpath中的节点

     

    3. xpath定位节点以及提取属性或文本内容

    nodename选中该元素。
    /从根节点选取、或者是元素和元素间的过渡。
    //从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
    .选取当前节点。
    ..选取当前节点的父节点。
    @选取属性。
    text()选取文本。

    示例:

    选择所有的h2下的文本

    //h2/text()

    获取所有的a标签的href

    //a/@href

    获取html下的head下的title的文本

    /html/head/title/text()

    获取html下的head下的link标签的href

    /html/head/link/@href

    4. 节点修饰语法

    //title[@lang="eng"]选择lang属性值为eng的所有title元素
    /bookstore/book[1]选取属于 bookstore 子元素的第一个 book 元素。
    /bookstore/book[last()]选取属于 bookstore 子元素的最后一个 book 元素。
    /bookstore/book[last()-1]选取属于 bookstore 子元素的倒数第二个 book 元素。
    /bookstore/book[position()>1]选择bookstore下面的book元素,从第二个开始选择
    //book/title[text()='Harry Potter']选择所有book下的title元素,仅仅选择文本为Harry Potter的title元素
    /bookstore/book[price>35.00]/title选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须大于 35.00。

     关于xpath的下标

    • 在xpath中,第一个元素的位置是1

    • 最后一个元素的位置是last()

    • 倒数第二个是last()-1

    5. 其他常用节点选择语法

    可以通过通配符来选取未知的html、xml的元素

    通配符描述
    *匹配任何元素节点。
    node()匹配任何类型的节点。

    示例:

    全部的标签://*

    全部的属性://node()

    6. lxml模块安装 

    pip/pip3 install lxml
    1. 导入lxml 的 etree 库

      from lxml import etree
    2. 利用etree.HTML,将html字符串(bytes类型或str类型)转化为Element对象,Element对象具有xpath的方法,返回结果的列表

      html = etree.HTML(text) 
      ret_list = html.xpath("xpath语法规则字符串")
    3. xpath方法返回列表的三种情况

      • 返回空列表:根据xpath语法规则字符串,没有定位到任何元素

      • 返回由字符串构成的列表:xpath字符串规则匹配的一定是文本内容或某属性的值

      • 返回由Element对象构成的列表:xpath规则字符串匹配的是标签,列表中的Element对象可以继续进行xpath

    使用示例:

    from lxml import etree
    text = ''' 
    <div> 
      <ul> 
        <li class="item-1">
          <a href="link1.html">first item</a>
        </li> 
        <li class="item-1">
          <a href="link2.html">second item</a>
        </li> 
        <li class="item-inactive">
          <a href="link3.html">third item</a>
        </li> 
        <li class="item-1">
          <a href="link4.html">fourth item</a>
        </li> 
        <li class="item-0">
          a href="link5.html">fifth item</a>
      </ul> 
    </div>
    '''
    
    html = etree.HTML(text)
    
    #获取href的列表和title的列表
    href_list = html.xpath("//li[@class='item-1']/a/@href")
    title_list = html.xpath("//li[@class='item-1']/a/text()")
    
    #组装成字典
    for href in href_list:
        item = {}
        item["href"] = href
        item["title"] = title_list[href_list.index(href)]
        print(item)

     ps:

    • lxml.etree.HTML(html_str)可以自动补全标签

    • lxml.etree.tostring函数可以将转换为Element对象再转换回html字符串

    • 爬虫如果使用lxml来提取数据,应该以lxml.etree.tostring的返回结果作为提取数据的依据

    展开全文
  • Python数据获取——图片数据提取

    千次阅读 2022-02-25 18:38:59
    图片数据提取一、利用exifread提取图片的EXIF信息 比如我随便从手机上传一张图片到我的电脑里,通过python可以获取这张照片的所有信息。如果是数码相机拍摄的照片,我们在属性里可以找到照片拍摄的时间,拍摄的...

    比如我随便从手机上传一张图片到我的电脑里,通过python可以获取这张照片的所有信息。如果是数码相机拍摄的照片,我们在属性里可以找到照片拍摄的时间,拍摄的经纬度,海拔高度。
    那么这些信息有什么作用呢?
    有很多功能…比如用户画像,客户信息标签设定等等,用户喜欢拍摄照片的季节,时间点,所使用的相机的参数指标可以反应出一个人的金钱状况,对于其拍摄的内容,我们可以通过AI的方式对照片的内容信息进行提取,从而判断一个人的兴趣爱好
    在这里插入图片描述


    一、利用exifread提取图片的EXIF信息

    exifread介绍:

    EXIF信息,是可交换图像文件的缩写,是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。EXIF可以附加于JPEGTIFFRIFF等文件之中,为其增加有关数码相机拍摄信息的内容和索引图或图像处理软件的版本信息。

    首先要安装ExifRead

    pip3 install ExifRead
    
    pic=r'D:\S072003Python\input\test\test.jpg'
    
    import exifread
    f = open(pic, 'rb')
    tags = exifread.process_file(f)
    print(tags) #内有相机型号,拍摄时间,经纬度等
    

    在这里插入图片描述

    tags
    

    在这里插入图片描述
    print(tags)和tags获取数据的格式不同。

    tags['Image ImageWidth']
    tags['Image ImageLength']
    tags['Image ExifOffset']
    tags['Image Orientation']
    tags['Image DateTime']
    tags['EXIF WhiteBalance']
    tags['EXIF ISOSpeedRatings']
    tags['EXIF FocalLength']
    tags['EXIF Flash']
    tags['EXIF LightSource']
    
    exifcolumns=['Image ImageWidth','Image ImageLength','Image ExifOffset','Image Orientation','Image DateTime','EXIF WhiteBalance','EXIF ISOSpeedRatings','EXIF FocalLength','EXIF Flash','EXIF LightSource'] # 把要提取的数据都封装在列表当中
    
    for i in range(len(exifcolumns)):
        print(tags[exifcolumns[i]]) # 使用循环拿到所有的数据
    

    在这里插入图片描述

    二、循环遍历图片信息

    任务:一次性获得以下图片的"Image ImageWidth"信息。写一个循环即可:
    在这里插入图片描述

    import exifread
    import os
    import pandas as pd 
    import glob 
    pic_list=glob.glob(r'C:\Users\Lenovo\Pictures\Saved Pictures\*.jpg')  # 如果是png,jpeg,bmp等数据格式,如何设置?
    
    for i in pic_list:
        fr=open(i,'rb')
        tags=exifread.process_file(fr)
        if "Image ImageWidth" in tags:  # 条件判断,因为并不是所有的照片都有"Image ImageWidth"
            print(tags["Image ImageWidth"])   
    
    # 经纬度获取
    import exifread
    import os
    import pandas as pd 
    import glob 
    pic_list=glob.glob(r'C:\Users\Lenovo\Pictures\Saved Pictures\*.jpg')  
    
    latlonlists=[]
    for i in pic_list:
        fr=open(i,'rb')
        tags=exifread.process_file(fr)
        if "GPS GPSLatitude" in tags:  # 条件判断,因为并不是所有的照片都有"Image ImageWidth"
            # 维度转换
            lat_ref=tags["GPS GPSLatitudeRef"]
            lat=tags["GPS GPSLatitude"].printable[1:-1].replace(" ","").replace("/",",").split(",")
            lat=float(lat[0])+float(lat[1])/60+float(lat[2])/3600
            if lat_ref  in  ["N"]:    # 表示是南半球的数据
                lat=lat*(-1)
            # 经度转换
            lon_ref=tags["GPS GPSLongitudeRef"]
            lon=tags["GPS GPSLongitude"].printable[1:-1].replace("","").replace("/",",").split(",")
            lon=float(lon[0])+float(lon[1])/60+float(lon[2])/3600
            if lon_ref  in  ["E"]:    # 表示是西半球的数据
                lon=lon*(-1)
                
            print("维度:",lat,"经度:",lon)
            latlonlist=[lat,lon]
            latlonlists.append(latlonlist)  
    
    展开全文
  • “ MIMIC数据库数据提取教程:如何提取入ICU后第一天测量的实验室指标、入ICU后每天的静脉输液总量等时间维度数据。”

    更多关于mimic数据库的知识,欢迎大家关注我的公众号:科研杂录

    针对MIMIC数据库的研究,例如小编之前跟大家分享的MIMIC数据库+中介效应=Critical Care(IF: 9分),往往会涉及到一些时间维度的数据,例如:入ICU后第一天测量的实验室指标、入ICU后每天的静脉输液总量、入ICU后第一天与第三天实验室指标(血乳酸/肌酐等)最大值的差值等。这些数据的共同点都是要对指标测量的记录时间与入ICU时间进行计算。那么,在MIMIC数据库中,我们应该如何进行时间计算呢?

    官方视图基于基本的PostgreSQL时间计算函数封装了几个函数,我们在提取这类数据时,直接使用封装好后的函数即可。

    MIMIC数据库常用的几个时间计算函数如下

    • datetime_diff(endtime,starttime,'HOUR'): 求endtime-starttime,单位是小时

      (单位可以根据需要换成'SECOND','MINUTE','DAY','YEAR')

    • datetime_add(datetime, '1 day'::interval day): 求datetime+1天的时间点,可以根据需要换需要加的时间如datetime_add(datetime, '2 year'::interval year)

    • datetime_sub(datetime, '6 hour'::interval hour): 求datetime前6小时的时间点

    下面我们用几个例子来讲解一下这几个函数的应用

    1. 如何提取入ICU后第一天测量的血液样本中lymphocytes的最大值、最小值以及平均值

    首先我们要提取患者入院后的每次测量的lymphocytes值,可以参考上一篇推文提取实验室指标

    提取之后,为了方便后续的查询,我们可以存放在一个物化视图里面

    -- 创建名为lymphocytes的视图
    create materialized view lymphocytes as 
    select subject_id,hadm_id,charttime,specimen_id,
    max(valuenum) valuenum from 
    mimic_hosp.labevents 
    where itemid in (51244,51245) 
    group by subject_id,hadm_id,charttime,specimen_id

    图片

    由于labevents表记录的是患者住院过程中所有的测量数据,因此没有stay_id,那么如何知道所测量的数据哪些是患者入ICU后第一天内测量的呢?

    MIMIC的官方firstday视图使用labeventsmimic_icu.icustays进行连表,当labevents中的记录时间(charttime)在入ICU时间(intime)的前6至后24小时之间,则认为这些数据是患者入ICU后第一天的测量数据。

    因此我们需要计算intime的前6小时与24小时,这时要用到datetime_subdatetime_add函数。因此获取入ICU后第一天测量的血液样本中lymphocytes的最大值、最小值以及平均值的SQL如下

    SELECT t1.stay_id,
    min(t2.valuenum) AS lymphocytes_min,
    max(t2.valuenum) AS lymphocytes_max,
    avg(t2.valuenum) AS lymphocytes_avg
    FROM mimic_icu.icustays t1
    LEFT JOIN lymphocytes t2 
    ON (t1.subject_id = t2.subject_id
    AND t2.charttime >= datetime_sub(t1.intime, '6 hour'::interval hour)
    AND t2.charttime <= datetime_add(t1.intime, '1 day'::interval day))
    GROUP BY t1.stay_id

    图片

    2. 如何获取入ICU后每天静脉输液总量

    MIMIC数据库中的mimic_icu.inputevents表记录了患者入ICU后静脉输液数据,我们的思路是,首先计算开始输液时间starttime与intime的差值,如果小于等于1天,我们则认为是第一天输液的数据,同理,如果大于1小于等于2,则认为是第二天输液的数据,最后根据天数分组求和,得出每天静脉输液总量。

    用SQL表示,我们可以用datetime_diff计算开始输液时间和入ICU时间的差值,再用ceil函数(SQL自带的函数)向上取整,比如差值是0.4天,那么取整为1,也就是此时输液时间是入ICU的第一天,最后再根据时间分组求和。

    select t1.stay_id,ceil(public.datetime_diff(t1.starttime,t2.intime,'DAY')) as date_num, 
    sum(t1.totalamount) 
    from mimic_icu.inputevents t1 
    left join 
    mimic_icu.icustays t2 
    on t1.stay_id = t2.stay_id 
    where t1.totalamount is not null 
    and t1.totalamount > 0 and t1.starttime > t2.intime 
    GROUP BY t1.stay_id, date_num;

    查询结果如下,我们查出来了入ICU后每一天的静脉输液总量

    图片

    3. 如何提取入ICU后第一天与第三天血乳酸/肌酐最大值的差值

    相信大家看过上面两个例子后,应该也会有思路去提取这个指标。我们可以参考例1提取第一天的最大值,然后修改charttime的时间范围为intime + 2 dayintime + 3 day提取第三天的最大值。有兴趣的小伙伴们可以根据这个思路,仿照上文代码用SQL实现,公众号回复"时间SQL"获取提取入ICU后第一天与第三天血乳酸/肌酐最大值的差值代码。


    更多关于临床公共数据库挖掘相关知识可同时关注以下公众号 

     

    展开全文
  • 数据提取之jsonpath

    千次阅读 2020-11-08 21:16:56
    在爬虫爬取的数据中有很多不同类型的数据,我们需要了解数据的不同类型来有规律的提取和解析数据。 结构化数据:json,xml等 处理方式:直接转化为python类型 非结构化数据:HTML 处理方式:正则表达式、xpath等 ...
  • 转:Python进行数据提取的方法总结,关于numpy,pandas 原文更新时间:2016年08月22日 09:06:00 数据提取是分析师日常工作中经常遇到的需求。如某个用户的贷款金额,某个月或季度的利息总收入,某个特定时间段的贷款...
  • UIPATH 数据提取

    千次阅读 2021-08-25 14:41:42
    Extract Table Data可以批量抓取网页数据或应用程序(如SAP)的数据,所抓取的数据如果是表格则可以直接被识别,对于非表格的数据需要多几步操作以抓取内容。在uipath studio 中Extract Table Data被替换为了Data ...
  • 1、数据提取的概念和数据的分类 在爬虫爬取的数据中有很多不同类型的数据,我们需要了解数据的不同类型来有规律的提取和解析数据. 结构化数据:json,xml等 处理方式:jsonpath,xpath,转换python类型处理,bs4,...
  • 数据提取的概念和数据的分类

    千次阅读 2019-01-23 11:00:56
    1. 什么是数据提取 简单的来说,数据提取就是从响应中获取我们想要的数据的过程 2. 爬虫中数据的分类 结构化数据:json,xml等 - 处理方式:直接转化为python类型 非结构化数据:HTML - 处理方式:正则表达式、...
  • 基于GEE与哨兵1号影像数据提取水体

    千次阅读 多人点赞 2021-05-27 09:14:34
    在进行光学数据提取水体时,常会发现部分时间、部分区域内由于云的存在而出现大面积的空白区域,从而使得我们提取水体面积过程中存在不精确的问题。因此,基于微波数据进行云的提取就成为我们较好的一个选择,通过...
  • kinetics-skeleton格式行为数据提取方法

    千次阅读 热门讨论 2022-03-12 11:48:59
    利用lightweight-OpenPose自动提取姿态生成kinetics-skeleton格式数据
  • 使用python进行数据提取和数据处理

    千次阅读 2020-08-30 12:58:31
    每当数据集出现时,第一步就是提取数据并对其进行处理。 这是最重要的部分,因为它提供了有关数据集的最有用的信息。 我已经获取了IPL数据集。 让我们看看它是如何完成的。 At first, we need to import libraries ...
  • 【实验描述】本实验以矢量数据为实验数据,讲解矢量数据的提取方法及注意事项。...掌握矢量数据提取方法 三、实验数据 1、黑河流域土地利用数据heihe.shp 四、实验过程 实验准备: 设置工作空间 ...
  • 图片数据提取软件--GetData Graph Digitizer

    万次阅读 多人点赞 2021-01-02 22:34:24
    在科技论文写作过程中,需要将自己的数据和前人成果进行对比。为了从别人的论文中得到原始数据,往往需要从曲线图中自主提取数据,这就需要用到今天介绍的 `GetData Graph Digitizer`这一款软件。
  • 栅格字段提取至其他图层数据
  • ArcGIS 从DEM 数据提取对应点的高程值

    千次阅读 2022-04-12 22:25:20
    将DEM数据文件和一个shapefile点文件(分别命名为“DEM”和“Point”)加载到ArcMap中。 【Spatial Analyst 工具】-【提取分析】——【值提取至点】 提取完成后会自动加载“Extract_shp1”图层,在该图层名字上...
  • 人工智能 (特征数据提取)

    千次阅读 2019-01-07 15:29:59
    特征工程数据提取: 机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,...
  • tableau-数据提取后部分数据丢失处理

    千次阅读 2020-11-09 16:28:11
    为了解决此问题,需注意,先移除数据提取并删除数据提取文件,然后再数据提取,此处再数据提取时需要将筛选器都选择全部,导致产品缺失的原因就是在数据提取时只选择了一个产品 此处提取的各字段内容要是全的 ....
  • Tableau 高级 | 优化数据提取

    千次阅读 2018-05-16 23:54:17
    数据提取默认超时时间为7200s,超时会导致数据提取失败。但可通过以下方式,重新设置超时时间。 首先以管理员身份进入Tableau server的bin目录 cd [安装目录]\Tableau\Tableau Server\10.3\bin 通过修改...
  • Python的excel表格操作,数据提取分析

    万次阅读 2021-10-26 09:57:16
    自己编写了一些表格的操作方法,只需传入表格路径和表的位置,就能在根据自己使用的方法展示不同类型的数据如:字典,列表,字典里套列表,列表里套列表,查询最大行数,在指定的行数插入数据等,有疑问欢迎评论 ...
  • MIMIC数据库数据提取教程-入门语句

    千次阅读 2021-09-28 21:18:11
    “ MIMIC数据库数据提取教程:常用的SQL语句介绍。”
  • 之前我在博客里贴出了操作...贴出实验表 3)也是一样,在class里传入表的路径和表页,然后在函数里传入我们需要找出表里面哪行的内容 我们可以看到,已经找出了表格里面的数据内容 还剩下几个函数这个下期在将吧,加油
  • 二、Pandas数据框操作及数据提取 #导包 import pandas as pd import numpy as np 数据框行列操作 1.1 创建DataFrame data = {"col1":['Python', 'C', 'Java', 'R', 'SQL', 'PHP', 'Python', 'Java', 'C', 'Python...
  • [ArcGIS] DEM数据提取坡度

    千次阅读 2020-10-19 10:05:54
    在使用坡度提取之前确保arcmap自定义工具中的Spatial Analyst模块打开 根据dem坐标系检查是否需要调整Z因子参数 坐标系是投影坐标系,也就是坐标单位是米,Z因子保持默认; 坐标系是地理坐标系,也就是坐标单位是...
  • ArcGIS基于矢量数据提取栅格值

    千次阅读 2020-02-19 00:57:49
    tips:实践中发现这一步对栅格数据数据类型似乎有要求,数据不是整型时容易出错(也可能是我操作的其他步骤出错,但保险起见还是转为整型) 栅格转矢量 join tips:这里的方法要求必须把要统计的栅格图层...
  • 最近发现excel数据量极大,并且通过简单的数据操作不能提取到我需要的数据,如果单独操作,数据量太大耗时太长。想着通过简单的方式,并且快速提取数据,就想到了Python。python操作Excel使用的openyxl和pandas对...
  • python处理pcap文件——数据提取

    千次阅读 2020-04-09 22:43:57
    对pcap文件中每个包进行内容提取提取出pcap头每个包header和data部分,存入txt 这是对网上的一份代码的优化修改 #!/usr/bin/env python #coding=utf-8 #读取pcap文件,解析相应的信息,为了在记事本中显示的方便,...
  • 使用R进行数据提取

    万次阅读 2018-05-20 15:22:11
    数据提取是数据分析日常工作中遇到最多的需求,本篇文章介绍如何通过R按特定的维度或条件对数据进行提取,完成数据提取需求。读取并创建数据表首先第一步是读取数据,并创建名称为loandata的数据表。后面我们将从这...
  • 实现过程: 一,遍历目标文件夹并筛选出’.xls’或’.xlsx’格式的表存入到数组中。 二,数组存储筛选出表的指定...#所需遍历提取excel表格的文件夹 path = r'xxx' #存储到新表格 path1 = r'xxx.xlsx' TID = [] EPC =
  • 前言:样例数据及使用的model工具箱...提取目标为红色建筑物的footprint。 二、 Classify工具数据预处D理 如果手上的点云数据没有class分级,可以使用Pro中3D分析扩展中的分类工具进行数据预处理: 三、 构建model,提

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,069,494
精华内容 427,797
关键字:

数据提取

友情链接: myCpp.rar