[혼공분석 3주차] 혼자공부하는 데이터 분석 with 파이썬

 

@[혼공스터디] 혼자공부하는 데이터분석 with 파이썬

[혼공분석 3주차] 혼자공부하는 데이터 분석 with 파이썬



이번주에는 '데이터 정제하기'라는 챕터로 이전에 사용했던 남산도서관 데이터를 다운로드 하여, 불필요한 행, 열등을 제거하거나 불필요한 데이터들 삭제하고, 데이터들을 변경하는 방법들을 알아보면서 데이터를 원하는데로 변경하는 방법을 학습했는데요, 


특히 196페이지에 '정규표현식'의 경우는 처음에는 조금 복잡할수 있지만, 제대로 알아두면 정말 효율적으로 사용할수 있는 방법이며, 요즘 프로그래밍 언어들이 대부분 정규표현식을 지원하고 있기 때문에, 다른 프로그래밍 언어를 학습할때도 편리하게 사용할수 있을듯 합니다.



@[혼공스터디] 혼자공부하는 데이터분석 with 파이썬



selected_columns = ns_df.columns != 'Unnamed: 13'
ns_book = ns_df.loc[:, selected_columns]
ns_book.head()

교재 158~159 페이지에서 하나의 열을 제거하는 방법에 대해서 학습한후, 한번에 여러개의 열을 제거하는 방법이 궁굼해서 따로 찾아보고 따로 2가지 코드 방법을 아래에 추가해봤습니다.


selected_columns = ns_df.columns[(ns_df.columns != '부가기호') & (ns_df.columns != 'Unnamed: 13')]
ns_book = ns_df.loc[:, selected_columns]
ns_book.head()

간단한 방법은 '&'연산자를 사용하는 방법 입니다.


selected_columns = ns_df.columns[~ns_df.columns.isin(['부가기호', 'Unnamed: 13'])]
ns_book = ns_df.loc[:, selected_columns]
ns_book.head()

isin() 함수는 pandas 패키지에서 제공되는 함수로, 주어진 값이 포함되어 있는지 확인하는지 사용하며, 여러 조건을 동시에 사용할수 있어서 이번 에제에서 사용하는데 효율적인듯 합니다.




  • 기본미션 : p. 182의 확인 문제 2번 풀고 인증하기
@[혼공스터디] 혼자공부하는 데이터분석 with 파이썬


@[혼공스터디] 혼자공부하는 데이터분석 with 파이썬


import pandas as pd
import numpy as np

df_data = {'col1':['1','2','3'], 'col2':['a',np.nan,'c'], 'col3':[np.nan,np.nan,100.0]}
df = pd.DataFrame(df_data)
df

print('============ 1 번 ============')
df['col1'].sum()

print('============ 2 번 ============')
df[['col1']].sum()

print('============ 3 번 ============')
df.loc[:,df.columns == 'col1'].sum()

print('============ 4 번 ============')
df.loc[:, [False,False,True]].sum()


정답 : 4번

4번에 col1, col2 는 False 이고 col3만 True로 col3 의 합을 계산한다



그런데, 이 문제에는 오류가 있는듯 합니다.

열의 합이면 1+2+3 이여서 6이 되어야 아닌가 싶어서, 이렇게 따로 계산을 해보았습니다.


import pandas as pd
import numpy as np

df_data = {'col1': ['1', '2', '3'], 'col2': ['a', np.nan, 'c'], 'col3': [np.nan, np.nan, 100.0]}
df = pd.DataFrame(df_data)

sum = df['col1'].astype(int).sum()
print("합:", sum)

astype(int) 함수를 사용해서 col1의 데이터를 정수형으로 변경한후, sum() 함수로 합을 계산해서 정확한 col1의 합인 '6'이 출력이 되었습니다.




  • 선택미션 : p. 219의 확인 문제 5번 풀고 인증하기
@[혼공스터디] 혼자공부하는 데이터분석 with 파이썬


@[혼공스터디] 혼자공부하는 데이터분석 with 파이썬


import pandas as pd

df_data = {'A':['bat','foo','bait'], 'B':['abc','bar','xyz']}
df = pd.DataFrame(df_data)
df.replace(r'ba.*', 'new', regex=True)


정답 : 1번

df 에서 'ba'로 시작하는 패턴을 가진 값을 'new'로 변경한다.




#혼공학습단 #혼공 #혼공분석

댓글 쓰기

0 댓글