在Python中读取列数可变的文本文件

2024-09-30 16:31:18 发布

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

我试图读取一个.txt文件,其中包含使用pandas的字符串项。此文件中的不同行具有不同的列数。可以找到文件here。在

这就是我试图阅读文件的方式。在

pd.read_csv('file.txt', sep=r'\s+', header=None).values[:,1:].astype('<U100') 

使用上述方法读取文件时出现以下错误:

^{pr2}$

我读了this Stackoverflow post。我现在尝试了这个方法:

pd.read_csv('file.txt', error_bad_lines=False, sep=r'\s+', header=None).values[:,1:].astype('<U100')

上面的方法没有给出任何错误,但是现在在读取文件的过程中会跳过多行。有没有什么方法可以让我完整地阅读前面提到的file而不出错?在


Tags: 文件csv方法txtnonepandasread错误
2条回答

这会产生大量数据(从695行到475行)。但那个文件无论如何都是垃圾。最好在它进入python之前对其进行预处理。在

[ins] In [20]: df = pd.read_csv("/tmp/file.txt", delim_whitespace=True, error_bad_lines=False, warn_bad_lines=False, header=None)                                                               

[ins] In [21]: df.shape                                                                                                                                                                         
Out[21]: (474, 82)

您可以使用_io.TextIOWrapper方法readlines()从文件中创建一个嵌套的字符串列表系统(文件中的每一行对应一个子列表)。这就是熊猫建造DataFrame所需的全部资源:

import pandas as pd

with open('file.txt', 'r') as f:
    file_lines = f.readlines()

keymap =  pd.DataFrame([string.split('\t') for string in file_lines])

这就产生了:

^{pr2}$

我希望这有帮助!最好的!在

D

相关问题 更多 >