【问题标题】:Pandas DataFrame - Creating multiple columns from a .txt file [duplicate]Pandas DataFrame - 从 .txt 文件创建多列 [重复]
【发布时间】:2021-07-12 10:13:28
【问题描述】:

我有一个 .txt 文件,其中包含 SQL Server 19 数据库查询的文本输出。我正在尝试将文件的列组织成 Pandas DataFrame 中的列。以下文本是 .txt 文件的示例(此格式有 193k 行):

2                    99          SAÚDE PARCERIAS
2                    100         SAÚDE QUÂNTICA
2                    101         TESTE SAÚDE
2                    102         UNIDADE DE SAÚDE DA AMADORA
2                    103         VICENTE SAÚDE
3                    104         DUNHILL
4                    105         DEGÁ
4                    106         FLOR DE MUGA
4                    107         M MEGA RETAILER.CO.UK
4                    108         makè
4                    109         MEGA MAKE EARTH GREAT AGAIN
4                    110         MOGAO
4                    111         O MOEGA
4                    112         SABORES À MESA
5                    113         MAN
5                    114         MAN
6                    115         A CASA DO MONTE
6                    116         ALMA DA PONTE
6                    117         BELLO MONTE
6                    118         CANADA DO MONTE

对这个问题有什么建议吗?如果问题不够清楚,请告诉我。提前感谢您的宝贵时间。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    要加载具有固定宽度列的文件,您可以使用pd.read_fwf

    df = pd.read_fwf("your_file.txt", header=None)
    print(df)
    

    打印:

        0    1                            2
    0   2   99              SAÚDE PARCERIAS
    1   2  100               SAÚDE QUÂNTICA
    2   2  101                  TESTE SAÚDE
    3   2  102  UNIDADE DE SAÚDE DA AMADORA
    4   2  103                VICENTE SAÚDE
    5   3  104                      DUNHILL
    6   4  105                         DEGÁ
    7   4  106                 FLOR DE MUGA
    8   4  107        M MEGA RETAILER.CO.UK
    9   4  108                         makè
    10  4  109  MEGA MAKE EARTH GREAT AGAIN
    11  4  110                        MOGAO
    12  4  111                      O MOEGA
    13  4  112               SABORES À MESA
    14  5  113                          MAN
    15  5  114                          MAN
    16  6  115              A CASA DO MONTE
    17  6  116                ALMA DA PONTE
    18  6  117                  BELLO MONTE
    19  6  118              CANADA DO MONTE
    

    或者:

    df = pd.read_csv("your_file.txt", sep=r"\s{2,}", engine="python", header=None)
    

    【讨论】:

    • 我该怎么做才能用这种方法定义列名而不是 0、1 和 2?
    • @JoãoMoço 使用names= 参数。例如:df = pd.read_fwf("your_file.txt", header=None, names=["col1", "col2", "col3"])
    猜你喜欢
    • 2020-04-09
    • 2019-09-27
    • 1970-01-01
    • 2013-07-19
    • 2022-10-01
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 2012-08-28
    相关资源
    最近更新 更多