【问题标题】:Transform a txt file to a pandas dataframe将 txt 文件转换为 pandas 数据框
【发布时间】:2022-01-10 15:23:12
【问题描述】:

您好,我有以下 txt 文件

December

line: 285 - event ID: 67511
line: 296 - event ID: 67512

November

line: 305 - event ID: 67515
line: 300 - event ID: 67517

我想把它转换成下面的数据框

df1 = pd.DataFrame(
    {   
        "index":     ["December",  "December",  "November", "November"],
        "index1":    ["285",       "296",       "305",      "300"],
        "eventid":   ["67511",     "67512",     "64515",    "64517"]})


     index     index1    eventid
0   December    285       67511
1   December    296       67512
2   November    305       64515
3   November    300       64517

有什么想法吗?

【问题讨论】:

    标签: python python-3.x dataframe txt


    【解决方案1】:

    我已经使用模式匹配来实现你所需要的:

    import re
    import pandas as pd
    
    res = []
    month_pattern = re.compile("^\w+$")
    line_pattern = re.compile("\d+")
    current_month = ""
    with open("FILE_PATH_TO_YOUR_DATA", "r") as f:
        for line in f:
            m = month_pattern.findall(line)
            if len(m) > 0:
                current_month = m[0]
            m = line_pattern.findall(line)
            if len(m) > 0:
                res.append([current_month] + m)
    
    df = pd.DataFrame(res, columns = ["index", "index1", "eventid"])
    
    print(df)
    

    输出

          index index1 eventid
    0  December    285   67511
    1  December    296   67512
    2  November    305   67515
    3  November    300   67517
    

    【讨论】:

    • 用 PATTERN_TO_YOUR_DATA 表示我的数据存储的目录。在这种情况下,我将以下内容与 open({"C:/Users/.../Desktop/NewData/weather.txt"}, "r") as f: 一起使用,并向我抛出此错误: TypeError: expected str , bytes 或 os.PathLike 对象,未设置
    • @xavi exaclty - 让我说得更清楚
    • 你能帮忙解决这个错误吗?指定数据时我做错了吗?
    • "C:..."替换{FILE...}删除花括号。
    • open("C:/Users/.../Desktop/NewData/weather.txt", "r")
    猜你喜欢
    • 1970-01-01
    • 2023-03-16
    • 2019-09-25
    • 2020-02-29
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-16
    相关资源
    最近更新 更多