본문 바로가기
Python/Python

카톡데이터 접근 실습 [ .info( ) 데이터 확인 / str.replace( ), str.split( ) / .value_counts( ) / plt.figure( ), plt.scatter( ), plt.grid( ) / loc 인덱싱과 boolean인덱싱 활용 / ]

by leehii 2022. 7. 28.

 

 

 

 

한글 글꼴 설정을 위한

 

import matplotlib.pyplot as plt

from matplotlib import rc

rc('font', family='사용할 글꼴')

 

 

 

실습할 데이터 = 49개의 row(행)으로 이루어진 Series 형태의 data

 

 

print(type(data명))로 데이타 속성 확인 가능

data명.info()로 데이터 전반적인 확인가능

 

nin-null : 결측치가 없는 49개 행의 데이터

 

 

data명.head() : top 5 출력

data명.head(n) : top n 출력

data명.tail() : .head()의 반대

 

 

데이터명에서 확인할 컬럼명을 적어주거나

loc로 전체데이터에서 이름으로 확인하거나

iloc로 전체데이터에서 인덱스번호로 확인하거나

 

 

바꿀데이터.replace('변경전','변경후)

이 방법은 str형태에만 사용가능함

따라서 2022가 2023으로 변경되지 않음

 

 

이름과 카톡내용이 포함된 content 컬럼에서 이름만 추출하려면?

특정 데이터의 슬라이싱 필요

' ] '를 기준으로 split하던가, 인덱스 번호로 슬라이싱하던가.

 

 

Series를 슬라이싱해오면 한 컬럼, 혹은 한 열의 통채 내용이 가져와지므로

특정 컬럼을 지정하고str로 문자화한후 내부의 몇몇 문자열만 슬라이싱 해오는것임

위 방식은 [시작인덱스 1: 끝인덱스+1] 슬라이싱을 이용함

 

 

split을 기준으로 ' ] ' 앞은 0번, 뒤는 1번으로 짤림

 

그러므로 [0]번 인덱스의 값중에서 

.str[1:]로 1번인덱스부터 값을 가져온것임

 

일단 이름을 따로 column에 넣어주고

 

 

데이터명.value_counts() 로 value값을 세어주고 변수에 담는다

 

이 데이터는 Series 데이터이다 (index + value)

 

시각화를 위해 matplotlib를 사용할것임

 

개인별 카톡 빈도수이므로 name 컬럼을 value_counts로 세어준

Series 데이터인 index = 이름 , value = 데이터의 수

 

이를 활용하는 변수명.index와 변수명.values를 x축과 y축에 넣어준다

이후

plt.그래프종류(x,y)

plt.show()

르 이용하여 시각화

 

 

plt.figure(figsize=(x축크기, y축크기))

plt.xlabel()

plt.ylabel()

plt.title

plt.scatter()

plt.grid

등을 이용해서 표를 꾸며준다

 

어디서 가져올지[조건식]으로 True값만 return받는 boolean 인덱싱

 

 

데이터명.loc[행,열]과

boolean이 행단위 인덱싱이라는 점을 활용하여( 조건문을 행단위로 확인하여 True, False 반환)

 

데이터명.loc['boolean인덱싱값','확인할 열']을 사용함

 

 위와 같은 방식

 

 

str.replace('바꾸기전', '바꾼후')로 가져온 값을 슬라이싱하고

 

 

새로운 컬럼을 만들어서 넣어줌

 

이후 원래있던 date 컬럼을 변수명.drop()으로 삭제해주는데

컬럼을 삭제해야 하므오 열단위 처리인 axis=1 이 필요하다

 

일별 카톡수를 확인하는 것이므로

 

mth/d 컬럼의 value.counts()로 수를 세어주고

 

이 값을 x, y축에 넣어준다

넣어주기전 sort함수를 이용해 정렬해준 모습