24小时热门版块排行榜    

查看: 1763  |  回复: 31
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

dedream

木虫 (正式写手)

[求助] 求助数据筛选的问题

我有两个表,都是以时间为索引的数值
其中一个表的数据少,另一个表的数据量极大,现在想以少的这个表的时间为基准,把另一个表里对应的时间的数据全部筛选出来。两个表的数据一一对应。时间精确到分钟即可

求大侠帮忙指点这么编写代码
最好是python,matlab


数据范例见网盘
http://pan.baidu.com/share/link?shareid=65914&uk=3373024158

[ Last edited by dedream on 2012-10-2 at 09:58 ]
回复此楼
从数据到结论
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shinevip

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
dedream: 金币+20, 有帮助, 谢谢,我运行有点小问题,我再看看 2012-10-05 20:45:15
LZ改一下python 脚本里面文件名 就可以...

LST_in = open('lmh.txt', mode='r')
DES_out = open('cmpd_info.txt', mode='w')

for line in LST_in:

      LST_fields = line.split()
      number = LST_fields[0]

      DES_in = open('cmpd.txt', mode='r')

      for line in DES_in:

            DES_fields = line.split()
            compoundid = DES_fields[0]
            if compoundid == number:
               DES_out.writelines(line)

DES_in.close()
DES_out.close()
LST_in.close()
19楼2012-10-05 17:24:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shinevip

木虫 (正式写手)

【答案】应助回帖

引用回帖:
23楼: Originally posted by dedream at 2012-10-05 20:41:13
运行了以后,cmpd_info.txt是空的,等我再看看代码...

看了下数据形式, 重新修改了下python 脚本, 以前两列为比较依据, 精确到分钟. 把小数据存成 a.txt, 大数据存成b.txt.  结果就会在results.txt里面. 我还没测试, LZ可先运行下. 有问题再发上来...

LST_in = open('a.txt', mode='r')
DES_out = open('results.txt', mode='w')

for line in LST_in:

      LST_fields = line.split()
      number = LST_fields[0] + LST_fields[1]

      DES_in = open('b.txt', mode='r')

      for line in DES_in:

            DES_fields = line.split()
            compoundid = DES_fields[0] + DES_fields[1]
            if compoundid == number:
               DES_out.writelines(line)

DES_in.close()
DES_out.close()
LST_in.close()
27楼2012-10-06 00:14:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shinevip

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
dedream: 金币+180, ★★★很有帮助, 我修改了一下代码,输出2个txt,一个为含量,一个为原来的result,暂时解决问题,多谢您 2012-10-06 14:06:28
引用回帖:
28楼: Originally posted by dedream at 2012-10-06 11:54:54
number = LST_fields + LST_fields
IndexError: list index out of range

我再看看,昨天一直在琢磨那个宏...

超载链接里的文件. 把数据放入a.txt(小) 和b.txt(大) 里面, 直接调用.. 代码已经测试过..
http://pan.baidu.com/share/link?shareid=70652&uk=1093614952
29楼2012-10-06 12:35:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shinevip

木虫 (正式写手)

引用回帖:
30楼: Originally posted by dedream at 2012-10-06 13:24:23
测试数据倒是运行正常。
不过这个效率太低了,我有几十M的数据,需要运行8分钟以上,另外我需要的”含量“这个数值,要能和筛选出来的时间对应,放在一个文件里最好。

excel宏基本上实现了这个功能。

我感觉 ...

可以直接合并, 输出结果... 具体可以参考下list里面的操作...
32楼2012-10-06 21:53:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 dedream 的主题更新
信息提示
请填处理意见