Pandas read_table错误

时间:2017-01-09 16:29:47

标签: python pandas text

我是Python的新手,并试图学习熊猫,但最初遇到问题。我正在尝试读取日志文件并将其另存为数据帧。它是一个以空格分隔的文本文件,其中包含一个包含列名称的标题行。这是我正在运行的示例代码,用于测试读取功能。

import pandas as pd
data = pd.read_table('C:\Aerosonde Test Logs\MH_Data\TEC_20170105-083220\222_1_4435_.log',
               delim_whitespace='True', nrows=20)
print(data)

以下是日志文件的片段。

<Clock>[ms] <Year>  <Month> <Day>   <Hours> <Minutes>   <Seconds>   <Lat>[rad]  <Lon>[rad]  <Height>[m]
48161   2017    1   5   4   30  13.366  5.02E-06    8.05E-07    267.37
49161   2017    1   5   4   30  14.366  5.01E-06    7.95E-07    266.61
50161   2017    1   5   4   30  15.366  5.02E-06    7.95E-07    266.24

我不断收到错误。当我尝试读取整个日志文件时,我收到错误。

  

“UnicodeEncodeError:'mbcs'编解码器无法对位置0--1中的字符进行编码:无效字符”

我尝试在Excel中打开日志文件,然后再次将其另存为制表符分隔文件。当我尝试使用相同的代码打开该文件时,我得到了一个单独的错误。

  

“TypeError:需要一个整数”

我尝试跳过标题行,认为额外的字符存在问题,但也没有修复它。所以现在我不知所措,希望得到一些建议!

编辑:感谢Matteo我能够通过在文件路径字符串中添加'\'来修复UnicodeEncodeError。现在虽然我得到TypeError:尝试打开日志文件时需要一个整数。我试图打开任何空格或制表符分隔文件时似乎得到它。我刚刚制作了一个快速空格分隔文件,我得到了同样的错误。我甚至在十六进制编辑器中查看数据进行仔细检查,我没有看到任何奇怪的字节,所以不知道发生了什么。

当前读取表格代码

data = pd.read_table('C:\\Aerosonde Test Logs\\MH_Data\\TEC_20170105-083220\\TestLogFile.txt',
               delim_whitespace='True')

HexData for test text file

2 个答案:

答案 0 :(得分:2)

我认为错误是由日志文件路径的字符串引起的;你可以试着把\而不是。 另请参阅UnicodeEncodeError: 'mbcs' codec can't encode characters in position 0--1: invalid character upon running a PyInstaller-compiled script

答案 1 :(得分:0)

Matteo Franchi修改了UnicodeEncodeError,建议我添加一个额外的&#39; \&#39;我试图读取数据时仍然给我带有TypeError的文件路径字符串。显然我没有正确指定delim_whitespace。我从一个示例中复制了该参数,其中True语句在引号内并且不起作用。下面的代码工作正常。

-E