将“ .dat”文件导入熊猫数据框

时间:2019-11-05 11:40:03

标签: python-3.x pandas

我有一个如下所示的“ .dat”文件:

enter image description here

您可以在这里下载: https://filebin.net/hnhsv8sc3zvaoi8k

我想将此文件读入pandas数据框中。我找到了this question并尝试了解决方法:

with open('Output2.dat','r') as f:
    df = pd.DataFrame(l.rstrip().split() for l in f)

结果如下:

enter image description here

  • “余额”行已被替换,该如何更改?
  • 如何确保第一行作为熊猫列标题添加?

非常感谢您。

编辑: 这就是最终表的外观:

enter image description here

1 个答案:

答案 0 :(得分:1)

“空元素”为0xa0字节;拉丁文1中使用不间断的空格,但是仍然使用空格,因此str.split将其视为空白。

这是一种有效的变通方法:

with open("Output2.dat", "rb") as f:  # binary mode
    df = pd.DataFrame(
        [e.decode("latin-1") if e != b'\xa0' else None for e in l.strip().split()]
        for l in f
    )

在这里,我以二进制模式打开文件,因为bytes.split会忽略该特殊空间。当我检测到它时,我进一步将其替换为None,以使空白单元格中没有奇怪的字符。

我假设使用的是latin-1编码,因为0xa0本身是无效的UTF-8,但是您可能需要将其替换为windows-1252或其他某种编码,具体取决于此位置数据来自。