当前位置: 代码迷 >> python >> 数据读取-CSV
  详细解决方案

数据读取-CSV

热度:100   发布时间:2023-06-16 14:11:46.0

我在.dfx文件中有一些数据,我尝试将其作为csv与熊猫一起阅读。 但是它具有一些熊猫无法读取的特殊字符。 它们也是分隔符。

当我打印文件时,“ DC4”被删除。 SI正确读取为空格。 我尝试了一些编码(utf-8,latin1等),但没有成功。

我的代码很简单:

import pandas

file_log = pandas.read_csv("file_log.DFX", header=None)

print(file_log)

我希望我很清楚,并且有人知道。 提前致谢!

编辑:

输入。 LINK:drive.google.com/open?id=0BxMDhep-LHOIVGcybmsya2JVM28

预期输出:

88.4373 0 12.07.2014/17:05:22 38.0366  38.5179 1.3448 31.9839
30.0070 0 12.07.2014/17:14:27 38.0084  38.5091 0.0056 0.0033

通过检查example.DFX十六进制(带有xxd ),两个分隔符分别为0x140x0f

使用python引擎读取具有多个分隔符的csv:

import pandas

sep1 = chr(0x14) # the one shows dc4
sep2 = chr(0x0f) # the one shows si
file_log = pandas.read_csv('example.DFX', header=None, sep='{}|{}'.format(sep1, sep2), engine='python')

print file_log

你会得到:

         0  1                    2        3        4       5        6   7
0  88.4373  0  12.07.2014/17:05:22  38.0366  38.5179  1.3448  31.9839 NaN
1  30.0070  0  12.07.2014/17:14:27  38.0084  38.5091  0.0056   0.0033 NaN

似乎结尾处有一个空列。 但我相信您可以解决。

此处的编码似乎是ASCII。 DC4代表“设备控制4”,SI代表“移入”。 这些是ASCII文件中的控制字符,不可打印。 因此,尽管发出“ print(file_log)”,您可能看不到它们,尽管它可能会根据您的终端进行某些操作以查看此内容(例如\\ n会换行)。

尝试在解释器中输入file_log以获取该变量的表示形式,然后检查是否包括那些特殊字符。 很有可能您将在DC4表示形式中看到“ \\ x14”,表示十六进制14。然后,您可以通过使用诸如replace之类的字符串操作在程序中进一步处理这些字符串。

  相关解决方案