Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python将文本数据从dat文件转换为int_Python_Data Analysis - Fatal编程技术网

Python将文本数据从dat文件转换为int

Python将文本数据从dat文件转换为int,python,data-analysis,Python,Data Analysis,我想为我的公司写一个简单的绘图程序。我有一个包含数据的.dat文件,要读取它,我需要: with open(r'XXX\DAT-010.DAT', 'r') as f: data = f.readlines() print(data) 结果: [' Date Time Elapsed Sensor1 Sensor2 Sensor3 Sensor4 Sensor5 Sensor6 Sensor7 Sensor8

我想为我的公司写一个简单的绘图程序。我有一个包含数据的.dat文件,要读取它,我需要:

with open(r'XXX\DAT-010.DAT', 'r') as f:
    data = f.readlines()
print(data)
结果:

 ['      Date      Time    Elapsed    Sensor1    Sensor2    Sensor3    Sensor4    Sensor5    Sensor6    Sensor7    Sensor8    Sensor9   Sensor10   Sensor11   Sensor12   Sensor13   Sensor14   Sensor15   Sensor16   Sensor17   Sensor18   Sensor19   Sensor20\n',
 'dd/mm/yyyy  hh:mm:ss    Seconds JGP1103-I2 JGP1102-I2 JGP1102-I1    JGP1001    JGP1101   FLOW_416   FLOW_333  FLOW_2945     L1_INJ     L2_INJ     L3_INJ     L4_INJ     L1_EXT     L2_EXT     L3_EXT     L4_EXT L1_Mth_ext L2_Mth_ext L3_Mth_ext L4_Mth_ext\n',
 '         -         -          -        kPa        kPa        kPa        kPa        kPa     ml/min     ml/min     ml/min         mV         mV         mV         mV         mV         mV         mV         mV         mV         mV         mV         mV\n',
 '         -         -          -          -          -          -          -          -          -          -          -          -          -          -          -          -          -          -          -          -          -          -          -\n',
 '----------  --------  --------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------\n',
 '26.10.2016  08:58:09    1211242      84.95      84.77      86.21      84.47      84.77    -104.78     -83.82          -          -          -          -          -          -          -          -          -          -          -          -          -\n',
 '26.10.2016  08:58:24    1211257      85.01      84.77      86.03      84.53      84.77    -104.78     -83.82          -          -          -          -          -          -          -          -          -          -          -          -          -\n']
现在,为了找到实际值,我正在做:

data_int = list(map(float, data))
我得到以下错误:

ValueError: could not convert string to float: '      Date      Time    Elapsed    Sensor1    Sensor2    Sensor3    Sensor4    Sensor5    Sensor6    Sensor7    Sensor8    Sensor9   Sensor10   Sensor11   Sensor12   Sensor13   Sensor14   Sensor15   Sensor16   Sensor17   Sensor18   Sensor19   Sensor20\n'
所以我做了:

data_int = list(map(float, data[6]))
在只包含实际数据值的行上尝试,我得到:

ValueError: could not convert string to float: '.'

现在,如何有效地将这些数据转换为可分析的值列表?如何将txt数据转换为整数?作为记录,我尝试了int(data)等,但它不起作用。

文件的每一行都是一个字符串-因此
行[5]
包含:

"26.10.2016 08:58:09 1211242 84.95 84.77 86.21 84.47 84.77 -104.78 -83.82 - - - - - - - - - - - - -\n" 
您不能将其转换为浮点。你需要

  • 把这条线分成几部分
  • 根据零件的数据类型转换零件

输出(值列表):

然后,您可以从该列表中拾取零件:

print(data[3])  # 84.95

应该清楚的是,这些方法都不起作用,因为数据本身(不包括列名)充满了非数值,但您试图不加区分地转换它们。如果你能使用熊猫图书馆,那么它基本上是为这类问题量身定做的
['26.10.2016', '08:58:09', 1211242.0, 84.95, 84.77, 86.21, 84.47, 84.77, -104.78, 
 -83.82, '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-']
print(data[3])  # 84.95