如何从非结构化数据中获取计数

时间:2019-12-24 17:03:29

标签: python pandas dataframe

我的性能日志中有非结构化数据。我想从中捕获服务细节。我可以做定界符,但是由于它没有任何标头,所以我无法计数或打印该coloum。

请帮助我解决这个问题。

import pandas as pd

df = pd.read_csv (r'/Users/Myhome/Documents/Py_Learning/log.csv', sep = '|' , skipinitialspace=True)
#df = pd.read_csv (r'/Users/Myhome/Documents/Py_Learning/log.csv', sep =':|,|[|]', engine='python', header=None) ---> Multi separator is giving error. 


#df.groupby("CLIENT")
SERVICE = df.columns[4]
print (SERVICE) 

如何在所有行中查找唯一的服务名称并获得计数。我想用上周的数据作为图表。

样本数据:

2019-10-22 15:35|Where:CARD|SERVICE:Dell|VERSION:1.0|CLIENT:HDD|OPERATION:boverdue|RESPONSETIME:0034|STATUS:100000:ERR_TRANSACTION_TIMED_OUT|SEVERITY:ERROR|STATUSCODE:SOAP-FAULT|STATUSMESSAGE:NA 2019-10-22 15:35|Where:Digital|SERVICE:Laptop|VERSION:1.0|CLIENT:mouse|OPERATION:connet|RESPONSETIME:3456|STATUS:NO_RECORDS_MATCH_SELECTION_CRITERIA|SEVERITY:INFO|STATUSCODE:1120|STATUSMESSAGE:NA

1 个答案:

答案 0 :(得分:0)

首先,由于您的数据没有标题,因此需要设置header=None

df = pd.read_csv ('data.csv', sep = '|' , skipinitialspace=True, header=None)

然后要获取服务数据,只需执行

new_df = df.iloc[:,2].str.split(':', expand=True).iloc[:,1].value_counts()