업무를 하다 보니 반정형 데이터들을 바탕으로 테이블을 만들어야 할 경우가 많았다. 반정형 데이터들 중 하나인 웹 서버의 로그를 데이터셋으로 만들어보았다.
구글링으로 웹 서버 로그 파일의 예제 데이터를 구했다.

다운받은 웹 서버 로그 파일을 컬럼별로 데이터가 들어가도록 파이썬 코드를 작성하였다.
import pandas as pd
import re
# 로그의 각 행에 매치하는 정규식 작성
pattern = re.compile('(^\S+) - - \[(.*)] "(\S+ \S+) \S+" (\S+) (\S+)')
# 경로 설정
input_log_path = r"/Users/shin-eunjae/Desktop/code/webserver_access_log_parsing/data/access.log"
# 정규 표현으로 파싱하는 함수 작성(일치하지 않는 행은 그냥 버린다)
def parse_access_log(path):
for line in open(path):
for m in pattern.finditer(line):
yield m.group(1,2,3,4,5)
# 데이터프레임에 변수 보관하기
columns = ['IP', 'time', 'request', 'status', 'bytes']
data = parse_access_log(input_log_path)
df = pd.DataFrame(data, columns=columns)
# 'time'칼럼을 덮어쓴다(타임 존 삭제)
df.time = pd.to_datetime(df.time, format='%d/%b/%Y:%X', exact=False)
# 데이터 확인
df.head()
# csv 파일로 보관
output_log_path = r"/Users/shin-eunjae/Desktop/code/webserver_access_log_parsing/data/"
df.to_csv(output_log_path + 'access_log.csv', index=False)

반정형 데이터였던 웹 로그 데이터가 위와 같은 정형 데이터(CSV)로 저장이 됐다.
참고
빅데이터를 지탱하는 기술, 니시다 케이스케