我在.dfx文件中有一些数据,我试图将它作为带有pandas的csv读取。但它有一些特殊的字符,不能被熊猫读取。它们也是分隔符。I attached one line from it
打印文件时删除“DC4”。正确地将SI读作空格。我尝试了一些编码(utf-8,latin1等),但没有成功。 I attached the printed first line as well. I marked the place where the characters should be.
我的代码很简单:
import pandas
file_log = pandas.read_csv("file_log.DFX", header=None)
print(file_log)
我希望我很清楚,有人有个主意。 提前谢谢!
修改
输入。链接: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
答案 0 :(得分:5)
通过检查hex(带xxd
)的example.DFX,两个分隔符相应地为0x14
和0x0f
。
使用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
最后它似乎有一个空列。但我相信你能解决这个问题。
答案 1 :(得分:0)
这里的编码似乎是ASCII。 DC4代表"设备控制4"和#34;转入"。这些是ASCII文件中的控制字符,不可打印。因此,当您发出" print(file_log)"时,您无法看到它们,虽然它可能会根据您的终端进行查看(例如\ n会做换行)。
尝试在解释器中键入file_log以获取该变量的表示形式,并检查是否包含这些特殊字符。您可能会在表示中看到DC4为' \ x14'这意味着十六进制14。 然后,您可以使用字符串操作(如替换)在程序中进一步处理这些字符串。