PhaTracer 2018-05-17 01:35 采纳率: 22.2%
浏览 11700
已采纳

Python提取一列数据,检测其是否在一个范围内..

目前有写两个这样的程序,很奇怪的是明明是一模一样的语句,但有的运行时错误,有的运行时正确的,

编辑一下,找到第一个错误原因了,应该是
'01'<......<'05'
因为文本内数据格式为两位数,不满十位填满.....改动之后就好了,但是下面的25-30.30-35依然是错误的。

如果是格式问题的话第二个数据要到小数点后很多位,且都不相同,请问有直接比较数大小的方法吗?

 import pandas
from pandas import DataFrame
f=open('F:\\FCD\\11-12总时间.txt')
file=f.readlines()
a=0
n=0
c=0
d=0
e=0
f=0
g=0
h=0
i=0

L=[]
for line in file:
    L.append(line.split(':'))
time=DataFrame(L)
timemin=time[1]
for i in range(len(timemin)):
    if '1'<timemin[i]<'5':
        a=a+1
    if '5'<timemin[i]<'10':
        n=n+1
    if '10'<timemin[i]<'15':
        c=c+1
    if '15'<timemin[i]<'20':
        d=d+1
    if '20'<timemin[i]<'25':
        e=e+1
    if '25'<timemin[i]<'30':
        f=f+1
    if '30'<timemin[i]<'35':
        g=g+1
print(a)
print(n)
print(c)
print(d)
print(e)
print(f)
print(g)
print(h)
print(i)

运行出来的结果为

 print(a)
print(n)
print(c)
print(d)
print(e)
print(f)
print(g)
print(h)
print(i)
6648
0
2237
1188
611
349
190
0
18389

明显两个0还最后的18389都是错误的...但写法没变啊?

还有另一个同理,检测两个文本内同一行数据(数据格式皆相同),写法如下:

 from pandas import DataFrame
import pandas as pd
a=0
.......

L=[]
M=[]
afile=open('F:\FCD\one\odd.txt')
bfile=open('F:\FCD\one\even.txt')

for line in afile:
    L.append(line.split(','))
data=pd.DataFrame(L)
na=data[4]
nac=data[5]

for bline in bfile:
    M.append(bline.split(','))
datab=pd.DataFrame(M)
nb=datab[4]
nbc=datab[5]

for i in range(len(data)):
    if '113.85'<na[i]<'114.1' and '22.4'<nac[i]<'22.6' and '113.85'<nb[i]<'114.1' and '22.4'<nbc[i]<'22.6':
        a=a+1
        ..........


print(a)
........

与上述一样,有的结果正确有的结果错误...不知道为什么,还望指点

  • 写回答

3条回答 默认 最新

  • EuclideanSpace 2018-05-17 03:32
    关注

    评论怎么消失了?在for语句里面改成这样子试试,把所有要对比的数据都变成数来进行对比
    if 1<float(timemin[i])<5:
    a=a+1
    if 5<float(timemin[i])<10:
    n=n+1
    if 10<float(timemin[i])<15:
    c=c+1
    if 15<float(timemin[i])<20:
    d=d+1
    if 20<float(timemin[i])<25:
    e=e+1
    if 25<float(timemin[i])<30:
    f=f+1
    if 30<float(timemin[i])<35:
    g=g+1

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧