Log file to Pandas Dataframe(Pandas Dataframe的日志文件)
                            本文介绍了Pandas Dataframe的日志文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
                        
                        问题描述
我有日志文件,其中有很多行,格式为:
LogLevel    [13/10/2015 00:30:00.650]  [Message Text]
我的目标是将日志文件中的每一行转换为漂亮的数据框。我已经试着这样做了,通过在[字符上拆分行,但是我仍然没有得到一个整齐的数据帧。
我的代码:
level = []
time = []
text = []
   with open(filename) as inf:
     for line in inf:
       parts = line.split('[')
         if len(parts) > 1:  
           level = parts[0]
           time = parts[1]
           text = parts[2]
        print (parts[0],parts[1],parts[2])
 s1 = pd.Series({'Level':level, 'Time': time, 'Text':text})
 df = pd.DataFrame(s1).reset_index()
这是我的打印数据框:
Info      10/08/16 10:56:09.843]   In Function CCatalinaPrinter::ItemDescription()]
Info      10/08/16 10:56:09.843]   Sending UPC Description Message ]
如何改进才能去掉空格和另一个‘]’字符
谢谢
推荐答案
可以使用read_csv和分隔符s*[-空格和[:
import pandas as pd
from pandas.compat import StringIO
temp=u"""LogLevel    [13/10/2015 00:30:00.650]  [Message Text]
LogLevel    [13/10/2015 00:30:00.650]  [Message Text]
LogLevel    [13/10/2015 00:30:00.650]  [Message Text]
LogLevel    [13/10/2015 00:30:00.650]  [Message Text]"""
#after testing replace StringIO(temp) to filename
df = pd.read_csv(StringIO(temp), sep="s*[", names=['Level','Time','Text'], engine='python')
然后按strip删除]并转换列Timeto_datetime:
df.Time = pd.to_datetime(df.Time.str.strip(']'), format='%d/%m/%Y %H:%M:%S.%f')
df.Text = df.Text.str.strip(']')
print (df)
      Level                    Time          Text
0  LogLevel 2015-10-13 00:30:00.650  Message Text
1  LogLevel 2015-10-13 00:30:00.650  Message Text
2  LogLevel 2015-10-13 00:30:00.650  Message Text
3  LogLevel 2015-10-13 00:30:00.650  Message Text
print (df.dtypes)
Level            object
Time     datetime64[ns]
Text             object
dtype: object
                        这篇关于Pandas Dataframe的日志文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
				 沃梦达教程
				
			本文标题为:Pandas Dataframe的日志文件
				
        
 
            
        
             猜你喜欢
        
	     - YouTube API v3 返回截断的观看记录 2022-01-01
 - 使用公司代理使Python3.x Slack(松弛客户端) 2022-01-01
 - 我如何透明地重定向一个Python导入? 2022-01-01
 - ";find_element_by_name(';name';)";和&QOOT;FIND_ELEMENT(BY NAME,';NAME';)";之间有什么区别? 2022-01-01
 - 计算测试数量的Python单元测试 2022-01-01
 - 我如何卸载 PyTorch? 2022-01-01
 - CTR 中的 AES 如何用于 Python 和 PyCrypto? 2022-01-01
 - 如何使用PYSPARK从Spark获得批次行 2022-01-01
 - 检查具有纬度和经度的地理点是否在 shapefile 中 2022-01-01
 - 使用 Cython 将 Python 链接到共享库 2022-01-01
 
