精华内容
下载资源
问答
  • 背景:老板提供了一份txt数据集,是关于视频点播时长的统计,包括视频ID和播放时长两个数据变量,部分数据格式如下: “视频id” “播放时长” “00000000020000047018” “00:29:59” “00000000020000047031...

    背景:老板提供了一份txt数据集,是关于视频点播时长的统计,包括视频ID和播放时长两个数据变量,部分数据格式如下:

    “视频id” “播放时长”
    “00000000020000047018” “00:29:59”
    “00000000020000047031” “00:34:59”
    “00000000040001292551” “01:05:00”
    “00000000040001294405” “01:05:00”
    “00000000040001242053” “00:41:00”
    “00000000020000675981” “0”
    “00000000020000050729” “00:30:00”
    “00000000020000050735” “00:09:34”
    “00000000020000050741” “00:04:53”
    “00000000020000799816” “0”
    “00000000020000675988” “0”
    “00000000020000675989” “0”
    “00000000020000050777” “00:16:22”
    “00000000040001297877” “01:05:00”
    … …

    要实现播放时长的统计规律,需要从中提取处理来第二个字段,并转化成秒长,排序后进行散点图绘制,在Ubuntu下使用python语言处理该数据集,效果很好,代码如下:

    import numpy
    import io
    import csv
    
    import time
    import sys,re
    
    import numpy as np  
    import matplotlib.pyplot as plt 
    
    ## function to change the type of time into seconds
    def time2itv(sTime):  
    
        p="^([0-9]+):([0-5][0-9]):([0-5][0-9])$"  
        cp=re.compile(p)  
        try:  
            mTime=cp.match(sTime)  
        except TypeError:  
            return "[InModuleError]:time2itv(sTime) invalid argument type"  
    
        if mTime:  
            t=map(int,mTime.group(1,2,3))  
            return 3600*t[0]+60*t[1]+t[2]  
        else:  
            return 0
    
    ##write the time into a csv,change it into seconds,and sort it 
    def write2csv(stime):
        with open('result.csv', 'wb') as csvfile:
            writer=csv.writer(csvfile)
        writer.writerow(['time'])
            writer.writerows([stime])
    
    ##read the time into numbers and time in txt,which are divided by'\t'
    timelist=[];
    
    for line in open("test.txt"):
        numbers,time =line.split("\t")
        time=time.strip()
        time=time.rstrip('"')
        time=time.lstrip('"')
        time=time2itv(time)
        timelist.append(time)
    
    #    print time
    
    timelist.sort(reverse=True);
    
    
    #print "end"
    #print timelist
    write2csv(timelist)
    
    ##draw out the point
    
    #x=1:len(timelist);
    
    y=timelist;
    
    plt.plot(y,marker='o')
    plt.show()
    
    

    运行结果下图:
    图片

    长尾分布特征十分明显,复合帕累托定律。

    解决的问题
    1. 利用python语言读取txt文件并写入csv文件;
    2. 除去所需字段的非必要字符,如 空格,引号等;
    2. 实现计时格式从XX:YY:ZZ到XXX格式的转化;

    存在的问题:
    1. 为了提取出有效数字,方便日后利用,选择使用 list存储播放时长,但是写入csv文件的时候出现问题,数据按行排列,并没有按照预期结果显示按列排列。
    2. 下一步使用python中安装的SciPy库,对数据进行拟合。

    一个月之后看自己写的代码一坨屎,
    除了计算时间那个正则表达式像回事,不过貌似第copy别人的
    重新写了一下这段代码
    好歹看上去舒服点。

    import time
    from numpy import array
    from numpy.random import normal
    from matplotlib import pyplot
    
    def get_time(filename):
        readfile=open(filename)
        stime=[]
        lines=readfile.readlines()
        for line in lines:
            video_id,time=line.split("\t")
            time=time.strip()
            time=time.strip('"')
    
            if time!='0':
                time = time.split(':')
                hour= int(time[0])
                minite = int(time[1])
                second = int(time[2])
                #total_time=time[0]*3600+60*time[1]+time[2]
                total_time=3600*hour+60*minite+second
            else:
                total_time=0
            stime.append(total_time)
        return array(stime)
    
    def draw_hist(lenths):
        pyplot.hist(lenths,100)
    
        pyplot.xlabel('lenth')
        pyplot.xlim(0.0,10000)
        pyplot.ylabel('Frequency')
        pyplot.title('Lenth Of Fake Urls')
        pyplot.show()
    
    stime=get_time("STAT_CONTENT_TIME.txt")
    draw_hist(stime)
    展开全文
  • 那获取指定数据呢?比如前端页面里的文章页面,每个文章都有一个唯一id,当我点击目标文章的时候获取到那个字段的内容,因为那个字段的内容不止id,可能还有图片链接啊,文章内容啊,昵称啊,发布时间啊等等这些,求...
  • 如题:使用LinqExtensions获取到数据后,如何提取其中的某个字段。 ``` var expression = LinqExtensions.True(); var station = LinqExtensions.True(); string OrganizeId = OperatorProvider.Provider.Current...
  • Python DataFrame:提取某字段最大值所对应的行

    万次阅读 多人点赞 2018-09-04 10:00:17
    我们处理某些表格数据时,会遇到某个字段在不同类别中有不同的值,有时候需要提取某个类别中该字段最大值所对应的行,只用group by 往往不行。其实,使用group by 和 merge 相结合,即可轻松解决这个问题。 解决...

    我们处理某些表格数据时,会遇到某个字段在不同类别中有不同的值,有时候需要提取某个类别中该字段最大值所对应的行,只用group by 往往不行。其实,使用group by merge 相结合,即可轻松解决这个问题。

    解决思路:

    1、我们先来定义一个DataFrame:

    在上图的df中,不同的name对应着num值、年份,现在想提取每一year的最大num所对应的name。

    2、接下来,对df进行group by,并取最大值:

    可以看到,通过group by,我们提取出了每一year所对应的最大num。注意:我们进行group by 时,选取了原df中的两列:'year'、'num',这样做是排除name的干扰,groupby()函数中,需要指定分组依赖的列‘year’,并设定不将分组列作为索引;最后的max()是按最大值提取该分组的数据,当然其他函数如min()/mean()同样适用

    3、然后,我们利用第2步所得的最大值分组,与原表进行连接,提取最大值所在行:

    可以看到,对df_groupby和原表df进行左连后,成功取出了每一year最大num对应的name!

    源码如下:

    import pandas as pd
    
    data = {'year':[2016,2016,2017,2017,2017,2018,2018],
            'num':[2,5,4,7,8,90,78],
            'name':['a','b','c','d','e','f','g']}
    
    df = pd.DataFrame(data)
    
    df_groupby = df[['year','num']].groupby(by='year',as_index=False).max()
    
    df_merge = pd.merge(df_groupby,df,on=['year','num'],how='left')
    
    
    展开全文
  • pandas提取某字段最大值所对应的行

    千次阅读 2020-03-18 11:41:35
    我们处理某些表格数据时,会遇到某个字段在不同类别中有不同的值,有时候需要提取某个类别中该字段最大值所对应的行,只用group by 往往不行。其实,使用group by 和 merge 相结合,即可轻松解决这个问题。 定义一个...

    我们处理某些表格数据时,会遇到某个字段在不同类别中有不同的值,有时候需要提取某个类别中该字段最大值所对应的行,只用group by 往往不行。其实,使用group by 和 merge 相结合,即可轻松解决这个问题。

    定义一个DataFrame:

    在这里插入图片描述
    在上图的df中,不同的name对应着num值、年份,
    现在想提取每一year的最大num所对应的name

    2、接下来,对df进行group by,并取最大值:

    在这里插入图片描述
    可以看到,通过group by,我们提取出了每一year所对应的最大num。注意:我们进行group by 时,选取了原df中的两列:‘year’、‘num’,这样做是排除name的干扰,groupby()函数中,需要指定分组依赖的列‘year’,并设定不将分组列作为索引;最后的max()是按最大值提取该分组的数据,当然其他函数如min()/mean()同样适用。

    3、然后,我们利用第2步所得的最大值分组,与原表进行连接,提取最大值所在行:

    在这里插入图片描述
    可以看到,对df_groupby和原表df进行左连后,成功取出了每一year最大num对应的name!

    源码如下:

    import pandas as pd
     
    data = {'year':[2016,2016,2017,2017,2017,2018,2018],
            'num':[2,5,4,7,8,90,78],
            'name':['a','b','c','d','e','f','g']}
     
    df = pd.DataFrame(data)
     
    df_groupby = df[['year','num']].groupby(by='year',as_index=False).max()
     
    df_merge = pd.merge(df_groupby,df,on=['year','num'],how='left')
    
    展开全文
  • 关于删除某个字段重复记录,从网上搜索了一下,有些人写的方法运行不了,好像是mysql不支持那种语法,不过最后还是找到了另一个人写的可以执行的方法,相对来说还是比较简单,效率那只有在大数据量情况下才能证实了...

    关于删除某个字段重复记录,从网上搜索了一下,有些人写的方法运行不了,好像是mysql不支持那种语法,不过最后还是找到了另一个人写的可以执行的方法,相对来说还是比较简单,效率那只有在大数据量情况下才能证实了。
    个人实践是没问题的。具体操作示例如下:

    表:test
    表结构及数据:

    要求:删除name字段中重复的记录
    删除语句:
    第一种:delete from a using test as a,test as b where a.id>b.id and a.name = b.name;//保留旧记录
    第二种:delete from a using test as a,test as b where a.id<b.id and a.name = b.name;//保留新记录

    使用第一种删除得出的结果:

    结果删除id=3,name=test的记录,因为这条记录和id=1,name=test记录出现name字段值重复。

    直接查询name字段不重复数据,可以用:

    SELECT * FROM ring_resource AS A WHERE id = (SELECT MAX(id) FROM ring_resource WHERE name = A.name)

    展开全文
  • 1.json-iterator介绍 jsoniter ( json-iterator )是一款快且灵活的 JSON 解析器,同时提供 Java 和 Go 两个版本Jsoniter 是最快的 JSON 解析. ...2.提取Json指定字段数据 有时候,例如一个JSON对象很大...
  • 1.使用stream的方式: List<String> userIds = appPermissionVoList.stream().map(appPermissionVo->appPermissionVo.getUserId()).collect(Collectors.toList()); 2.使用guava: List<...
  • 如题:使用LinqExtensions获取到数据后,如何提取其中的某个字段。 var expression = LinqExtensions.True<Plat_DeviceEntity>(); var station = LinqExtensions.True<Plat_StationEntity>(); ...
  • matlab提取dat文件的特定字段数据-main.dat dat文件为abaqus计算结果文件。我想利用matlab提取出特定字段,特定点的位移数值。 首先我的mian.dat文件里面所要提取的位移数值内容为第一张图片,第二张和第三张...
  •  数据表 A1, 字段 TCR1 ,TCR1 内容:公司在地点“浙江等等路口” 违规,被规定条例:“对于无照经营行为,由工商行政管理部门依法予以取缔,没收违法所得;尚...
  • python3提取指定字段

    2018-10-25 19:13:31
    python3提取指定字段,有问题https://blog.csdn.net/qq_40374604留言,也可以来这里copy代码
  • python 获取数组中字典中某个字段数据 param=[{‘rowNum’: 2, ‘VCU_NO’: ‘DWHN610012018H00854’},{‘rowNum’: 2, ‘VCU_NO’: ‘DWHN610012018H00854’}] 获取第一个数组中的VCU_NO值 print(param[0][“VCU_...
  •  在第二个例子中,即如说你要计算记录中,一个字段包含特定字符的所有记录数。CHARINDEX函数可以方便的解决你的问题。计算Northwind.dbo.Customer表中Addresses字段中包含单词Road或者它的缩写Rd的记录数,选择...
  • get ‘t_sms_batch_text’,‘51613979272_yx1280_07152’,‘info:generalMsgInfo1’
  • 今天写程序,需要提取查询出来的记录的部分数据,使用JAVA可以实现,然后考虑sql方法是否也有同样的函数可供调用呢?查看了一下sql server2000 帮助文档,在字符串函数下找到了这个方法,原来方法名和java的相同,只...
  • shell - 提取特定字段

    千次阅读 2019-05-09 15:32:47
    提取特定字段awk在shell命令行输入命令调用awkawk脚本 测试数据数据格式:tab键分割,前三条记录5个字段,最后一条记录4个字段 要求:提取第二个字段和第三个字段 2019-03-11 21:05:07 209.58.131.47 57103 122....
  • JSON数据是我们开发中经常遇到的一种数据格式,一般通用的做法是,我们通过建立实体类,然后利用一些框架将JSON数据转化为对应的实体类对象,这样我们就可以方便地访问JSON数据了。 但是有些时候,一个JSON对象很大...
  • python 提取log字段

    千次阅读 2018-09-19 22:26:01
    由于工作需要在一大堆日志里面提取相应的一些固定字符,如果单纯靠手工取提取数据量大,劳心劳力,于是自然而然想到了用Python做一个对应的提取工具,代替手工提取的繁杂,涉及中文字符,正则表达式不好匹配,但...
  • Mysql查询某字段值重复的数据 查询user表中,user_name字段值重复的数据及重复次数 select user_name,count(*) as count from user group by user_name having count>1; 1 ......
  • oracle截取字段部分数据

    千次阅读 2019-03-26 15:39:13
    转自:... ... Oracle提前某数据的 前几位或几位 用substr函数。 如test表中数据如下: 现要提取dept字段中的前两位,可用如下语句: select id,na...
  • 如何从数据库中获取某字段数据

    千次阅读 2017-01-03 03:01:17
    刚接触ASP,已知如何连接数据库,请教如何从数据库中获取某字段数据? 假定表名:wangfemale 包含三个字段,分别为:num sort wname 数据量在1500条以上。 现需随机获取字段wname数据,并按一页显示2列8行,...
  • 【博文已迁移,持续更新请关注:...SQL对排序之后的数据根据某个字段前后两个计算变化率 SQL对于根据某个表中的【根据字段S_INFO_WINDCODE分组,且组内根据字段TRADE_DT升序之后的各组数据,对于各个组内计算S...
  • 但是有用的只有文字,当然你也可以选择自己手动一条一条删掉里面的数字0,不过这种方法仅限于数据量少的情况,数据量很大时可以利用字段计算器来提取文字: 新建一个字段MC用来存放从DLMC字段提取的文字,在MC...
  • **update tbl_sycs_paymentorder p LEFT JOIN tbl_sycs_orderinfo o on o.payCode=p.payCode set p.pkOrderInfo=o.pkOrderInfo where o.payCode=p.payCode tbl_sycs_paymentorde 这个表就是你要修改值得表,tbl_sycs...
  • 在做项目的时候有一个需求,后台返回的数据是所有类型的值,而我需要将它们分类,同一类型为一组,然后再截取我需要的字段。做法是var aSearch = []; var aTemp = data.filter(function(i){ return i.dataType.inc....
  • 当数据库中某字段存储的数据是 数组数据的时候 array ( 0 => array ( 'name' => 'xxx', '13fds' => '123123', 'dfsa' => '4444', 'fdsa' => 'Completed', 'fdsa' => 0, 'fdsa' => 12321, 'fdsafds'
  • 下面展示一些代码。 import ogr import os import gdal gdal.SetConfigOption('SHAPE_ENCODING','CP936') os.chdir(r'C:\\Users\\LiYeye\\Desktop\\python\\...inds=ogr.Open('HX.shp',0) #数据名称 inlayer=inds.GetL

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 96,734
精华内容 38,693
关键字:

如何提取某个字段后的数据