如何在python中读取.log文件?

如何在python中读取.log文件?,python,pandas,csv,dataframe,Python,Pandas,Csv,Dataframe,我有这个.log文件。我不知道如何将它们理解为数据帧 id | create_date -----+---------------------------- 318 | 2017-05-05 07:03:27.556697 456 | 2017-07-03 01:50:07.966652 249 | 2017-05-03 13:57:32.567373 参数 sep=“|” 使用|作为列分隔符 skiprows=[1] 忽略第二行,它只是装饰,是最

我有这个.log文件。我不知道如何将它们理解为数据帧

 id  |        create_date         
-----+----------------------------
 318 | 2017-05-05 07:03:27.556697
 456 | 2017-07-03 01:50:07.966652
 249 | 2017-05-03 13:57:32.567373

参数
  • sep=“|”

    使用
    |
    作为列分隔符

  • skiprows=[1]

    忽略第二行,它只是装饰,是最难解析的

  • 标题=0

    从第一行读取列名

  • 解析日期=[1]

    create_date
    列转换为
    datetime64
    格式(可能是可选的)

  • 重命名(columns=lambda x:x.strip())

    从列名中删除额外的空白

如果要将
id
列作为索引,而不是使用顺序索引,则可能需要添加
index\u col=0


参数
  • sep=“|”

    使用
    |
    作为列分隔符

  • skiprows=[1]

    忽略第二行,它只是装饰,是最难解析的

  • 标题=0

    从第一行读取列名

  • 解析日期=[1]

    create_date
    列转换为
    datetime64
    格式(可能是可选的)

  • 重命名(columns=lambda x:x.strip())

    从列名中删除额外的空白

如果要将
id
列作为索引,而不是使用连续的索引,则可能需要添加
index\u col=0

试试这个

df=pd.read_csv('file_.csv',sep='|')
然后您可以通过多种方式删除
-----+------------------------------------

  • df[df['id']!='-+-----------------------------------']
  • df[~df['id'].str.startswith('-')]
  • df.drop(0)
    #如果您的文件在任何其他位置(例如
    页脚)包含
    -----+-------------------------------
    ,它将不起作用
  • df[df['create_date'].notnull()]
    #当create_date列默认包含NaN时,它将不起作用
  • 输出:

        id           create_date         
    1   318    2017-05-05 07:03:27.556697
    2   456    2017-07-03 01:50:07.966652
    3   249    2017-05-03 13:57:32.567373
    
    试试这个

    df=pd.read_csv('file_.csv',sep='|')
    
    然后您可以通过多种方式删除
    -----+------------------------------------

  • df[df['id']!='-+-----------------------------------']
  • df[~df['id'].str.startswith('-')]
  • df.drop(0)
    #如果您的文件在任何其他位置(例如
    页脚)包含
    -----+-------------------------------
    ,它将不起作用
  • df[df['create_date'].notnull()]
    #当create_date列默认包含NaN时,它将不起作用
  • 输出:

        id           create_date         
    1   318    2017-05-05 07:03:27.556697
    2   456    2017-07-03 01:50:07.966652
    3   249    2017-05-03 13:57:32.567373
    

    它真的是那种格式吗?用ascii艺术线条来分隔行和列?@filippo是的,真实故事:3它真的是那种格式吗?用ascii艺术线条来划分行和列?@filippo是的,真实故事:3Tks@filipo,它并没有解决我的问题,但它给了我解决问题的线索。Tks@filipo,它并没有解决我的问题,但它给了我解决问题的线索。