读取带有列条件的熊猫文本文件

时间:2020-04-17 12:33:14

标签: python csv

我有一个巨大的文本文件,其中有1.8亿行,如下所示:

enter image description here

我想用熊猫读取此文本文件,但只读取“ pdate”在特定范围内的行。例如,我想读取“ pdate”在981225和981229之间的行。 由于整个文本文件很大,因此我不想读取整个文件然后设置条件。 我只想阅读那些符合我的情况的行。此外,我需要最快的方法,而不是逐行读取文件。 有什么解决办法吗?

2 个答案:

答案 0 :(得分:0)

此问题的最佳解决方案是将文本文件转换为CSV文件。要知道如何转换,请阅读以下段落:

获取csv后,使用它访问用户数据范围

df['two'].between(981225, 981229, inclusive=False)

如何将文本文件转换为Csv文件:

  1. 导入文本文件,以便可以将其读取并解释为数据。在Excel中,此过程非常简单,只需单击“数据”选项卡,然后单击“从文本”选项。

  2. 这时,系统将提示您从计算机中选择要使用的特定文本文件。找到适当的文件后,确认选择。

  3. 一旦选择了文件,屏幕上就会出现一系列菜单提示,使您可以指定应如何显示文本文件中的数据。这包括用于调整和创建折断线的选项以及宽度比率。自定义合适的文档后,您可以按“确定”按钮完成选择。

  4. 这时,您的文本文件应正确格式化为所需的各种行和单元格,以确保与CSV格式完全兼容。现在,您可以在软件中选择“另存为”功能,然后选择CSV文件格式。完成后,您的文本文件将按计划完全转换为CSV格式。

答案 1 :(得分:0)

如果您进一步使用它,可以与熊猫一起阅读。我不是最好的表演。

pd.read_csv(<file>, usecols=['..'], skiprows=<int>, nrows=<int>)

使用条款:以选择列 前移后移:所需的框架。

但是,如果您浪费了熊猫时间,则可以使用 open 对象中的readline()。

extract = []
with open(<file>) as f:
    row_start = 500
    row_end = 520
    n = 0

    while n < row_start:
        f.readline()
        n += 1

    while n <= row_end:
        extract.append(f.readline())
        n += 1