数据读取cs

2024-05-05 09:32:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个.dfx文件中有一些数据,我试图用pandas将其作为csv读取。但它有一些特殊的字符是熊猫看不懂的。它们也是分隔符。I attached one line from it

当我打印文件时,“DC4”正在被删除。SI被正确地解读为空格。我尝试了一些编码(utf-8,拉丁1等),但没有成功。 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

Tags: 文件csvthe数据fromlogpandasline
2条回答

这里的编码似乎是ASCII码。DC4代表“设备控制4”,SI代表“移入”。这些是ASCII文件中的控制字符,不可打印。因此,当您发出“print(file\u log)”时,您无法看到它们,尽管它可能会根据您的终端执行某些操作来查看这些内容(就像\n执行新行一样)。你知道吗

尝试在解释器中键入file\u log以获取该变量的表示形式,并检查是否包含这些特殊字符。很可能您会在表示中看到DC4为'\x14',表示十六进制14。 然后,您可以在程序中使用诸如replace之类的字符串操作来进一步处理这些字符串。你知道吗

通过检查示例.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

它的末尾似乎有一个空的列。但我相信你能应付。你知道吗

相关问题 更多 >