import matplotlib.pyplot as plt
import seaborn as sns
iris = sns.load_dataset("iris")
iris.corr(numeric_only=True)
데이터중에서 숫자형 데이터끼리의 상관관계를 확인하는 방법
type(df_shops.dtypes)
(df_shops 파일에 해당되는 모든 컬럼의 자료형을 조회) 의 타입(type()) = 시리즈라고 출력
df_shops.dtypes.value_counts()
컬럼들의 데이터 타입별 개수 / .value_counts() 는 컬럼이 가지고 있는 value 값들을 그룹화하고 각 그룹의 개수를 출력
floor_mode = df_shops['층정보'].mode()[0]
.mode()
데이터 프레임의 '층정보' 열에 있는 최빈값(가장 빈번하게 나타나는 값) / floor_mode 라는 변수에 할당
df_shops['층정보'].fillna(floor_mode)
.fillna() >>> 데이터프레임의 특정 열이나 전체 데이터프레임에 있는 결측값을 지정한 값으로 대체하는 역할
'층정보' 열에 해당하는 모든 결측값에 .fillna() 함수를 이용해 floor_mode 값을 넣기
df_shops['층정보'].apply(get_floor_num)
# apply 함수는 Pandas 라이브러리에서 DataFrame 또는 Series에 대해 특정 함수(function)를 적용할 때 사용되는 함수
# DataFrame 또는 Series의 각 요소에 대해 주어진 함수를 호출하여 그 결과를 반환
def get_floor_num(x):
if x.isdigit() == False:
if x.startswith('B'):
return -int(x[1:])
elif x == '지':
return -1
else:
return int(x)
.startswith('B') >>> B로 시작되는 문자열을 출력
df_shops['도로명주소'].str.contains('강남구')
.str.contains('강남구')
# df_shops 데이터프레임에서 '도로명주소' 열에 '강남구'라는 문자열이 포함되어 있는지를 확인
불리언 값을 반환한다.
df_shops.pivot_table(index='상권업종대분류명', columns='시군구명', values='상가업소번호', aggfunc='count', fill_value=0)
fill_value 는 값이 null 인 곳에 지정된 값을 넣어준다.
df_ptable = df_shops.pivot_table(index='상권업종대분류명', columns='시군구명', values='상가업소번호', aggfunc='count', fill_value=0)
df_ptable['열총합'] = df_ptable.sum(axis = 1)
df_ptable
위의 코드를 df_ptable 이라는 변수에 넣고, 이 데이터프레임에 열총합 이라는 컬럼을 만들기 위해서 .sum(axis = 1)을 사용한다. (가로로 죽 더한값을 마지막 컬럼에 추가)
# 행 총합 추가는 열에 추가하는 것이 아니고 concat 메소드를 사용
row_tot = pd.DataFrame(df_ptable.sum(axis = 0), columns = ['행총합']).T
pd.concat([df_ptable, row_tot])
행총합을 구하고 추가하기 위해서는 먼저 axis = 0 을 사용하면 되는데, 이를 새로운 열에 컬럼을 추가하는 것이 아니고 concat 메소드를 사용하여 아래에 새로운 행을 추가해준다. (세로로 죽 더한 값을 마지막 행에 추가)
.T는 데이터를 전치하기 위해 사용된다. 즉 열과 행의 위치를 서로 바꾼다.
df_shops.pivot_table(index='상권업종대분류명', columns='시군구명', values='상가업소번호', aggfunc='count', fill_value=0, margins=True)
margins=True 라는 pivot_table 내장함수를 사용해서 열과 행 끝에 ALL을 추가해서 사용할 수도 있다.
margins_name = '총합' 을 추가로 추가해서 ALL 을 총합으로 단어를 변경하는 것도 가능하다.
df_users = df_users.sort_values(by=['date', 'logid'], ascending=[True, False])
df_users.drop_duplicates('game_account_id', keep = 'last')
date 는 오름차순으로 먼저 정렬하고 date가 같으면 logid는 내림차순으로 정렬한다.
중복을 제거하는 함수 안에 내장함수로 keep = 'last' 를 사용하면 date는 가장 최신의 날짜 하나를 출력한다.
'개인 공부' 카테고리의 다른 글
긴 꼬리 분포, 카이제곱 분포 추가 정리 (0) | 2024.08.12 |
---|