yum install -y python36u python36u-libs python36u-devel python36u-pip
yum install -y https://centos7.iuscommunity.org/ius-release.rpm
#!env python
import pandas as pd
# CSV 파일 읽어들임
DF = pd.read_csv('sql.csv')
# 변수명에 빈칸 지원 안되니 열 이름 읽어들여서 ' '를 '_'로 치환.
DF.columns = [c.replace(' ', '_') for c in DF.columns]
# 기간에서 초단위 이하 없애(정규식 이용한 치환)고 기간 오름차순 정렬
DF.기간 = DF.기간.str.replace(':\d\d ', ' ')
DF.기간 = DF.기간.str.replace(':\d\d,', ',')
DF.공격자 = DF.공격자.str.replace(r':\d+', '')
print(DF.공격자)
DF = DF.sort_values(["기간"], ascending=[True])
DF = DF.reset_index(drop=True)
'''
# Groupby로 기간 - 공격자 묶었을 때
COL_COUNT = DF.groupby([DF.기간.tolist(), DF.공격자.tolist()], as_index=False).size()
print(COL_COUNT)
COL_COUNT.to_csv('result.csv', encoding='cp949')
# Groupby 블록 여기까지
'''
# '공격자'를 하나 저장해서 값이 바뀌지 않으면 COUNT 증가, 바뀌면 초기화.
# COUNT 를 배열로 저장했다가 loop 종료 후 데이터프레임(DF) 열에 추가함.
# 개선해야 할 점
# 1. 기간이 동일한 경우
# 2. IP까지 같아야 COUNT 증가하게 수정 필요
P_IP = DF.공격자[0]
COUNT = 0
ARR_COUNT = []
for C_IP in DF.공격자:
if C_IP == P_IP:
COUNT = COUNT+1
ARR_COUNT.append(COUNT)
#print(ARR_COUNT[-1], C_IP, P_IP)
P_IP = C_IP
else:
COUNT = 1
ARR_COUNT.append(COUNT)
#print(ARR_COUNT[-1], C_IP, P_IP)
P_IP = C_IP
# COUNT 열에 값 넣어주면 됨.
DF['COUNT_col'] = ARR_COUNT
#print(DF)
DF.to_csv('result.csv', encoding='cp949')