我有一个如下所示的“ .dat”文件:
您可以在这里下载: https://filebin.net/hnhsv8sc3zvaoi8k
我想将此文件读入pandas数据框中。我找到了this question并尝试了解决方法:
with open('Output2.dat','r') as f:
df = pd.DataFrame(l.rstrip().split() for l in f)
结果如下:
非常感谢您。
编辑: 这就是最终表的外观:
答案 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
或其他某种编码,具体取决于此位置数据来自。