본문 바로가기
Pandas, Numpy

자주 사용하는 Numpy, Pandas 함수 정리

by Kwonys 2023. 8. 27.
728x90
반응형

Numpy, Pandas 함수

오늘은 Numpy와 Pandas에서 자주 쓰거나 헷갈리는 함수들을 정리해보았습니다.

Numpy

Numpy 집계함수

  • .argmax( ) : 모든 요소 중 최대값의 인덱스
  • .cumsum( ) : 모든 요소의 누적합

Numpy 크기 변경

  • .ravel( ): 1 차원으로 변경
  • .T : 전치(Transpose) 변환

Numpy 데이터 합치기

  • np.vstack( ): axis=0(열) 기준으로 쌓음
  • np.hstack( ): axis=1(행) 기준으로 쌓음

Numpy 데이터 쪼개기

  • np.hsplit( )을 통해 숫자 1 개가 들어갈 경우, X개로 등분
  • np.hsplit( )을 통해 리스트로 넣을 경우, axis=1 기준 인덱스로 데이터를 분할

ex) a =[[0 1 2 3  4  5]

        [6 7 8 9 10 11]]

np.hsplit(a, 3) ->   [0, 1]     [2, 3]     [ 4,  5]                  [2, 2] 데이터 3개로 등분

                          [6, 7]     [8, 9]     [10, 11]

np.hsplit(a, (3, 4)) -->   [0, 1]     [2]    [3,  4,   5 ]         3번째 열을 기준으로 좌 우로 분할

                                 [6, 7]     [8]    [9, 10, 11]

Pandas

  • .isin( ) : 각각의 요소가 데이터프레임 또는 시리즈에 존재하는지 파악하여 True/False 값 반환

Pandas 데이터 통계

  • .agg( ) : 여러개의 열에 다양한 함수를 적용
    • 모든열에 여러 함수를 매핑 : group객체.agg([함수1, 함수2, 함수3, …])
    • 각 열마다 다른 함수를 매핑 : group객체.agg({‘열1’: 함수1, ‘열2’: 함수2, …})
print(titanic.agg({"Age" : ["min", "max", "median", "std"],
                   "Fare" : ["min", "max", "mean", "median"]}))
  • .groupby( ) : 그룹별 집계
  • .value_counts( ) : 값의 개수
  • .sort_values( ) : 열을 기준으로 정렬

Pandas 데이터프레임 합치기

  • .sort_values( ) : 열을 기준으로 정렬
  • pd.merge(df1, df2, on="A", how="outer") : “A”(공통 열)을 기준으로 df1과 df2를 outer hoin
  • pd.concat([df1, df2,] , axis=0) : 행 방향으로 인덱스 이어 붙임(Default : axis =0)

Pivot Table을 통해 데이터 살펴보기

  • Pivot_table
# 성별을 기준으로 생존률 파악 --> Mean vs Sum
pd.pivot_table(data=titanic, index=["Sex"], values=["Survived"], aggfunc=["sum", "mean", "count"])

Pivot_table 함수를 사용하여 데이터프레임에서 피봇 테이블을 만들 수 있습니다. 위 코드에서는 titanic 데이터프레임을 사용하여 "성별"을 기준으로 "생존 여부"를 파악하며, "생존 여부" 열을 값으로 사용합니다. aggfunc 파라미터를 사용하여 "sum", "mean", "count" 함수를 사용하여 총 생존자 수, 생존률, 그리고 총 인원 수를 구합니다.

 

결과:

                  sum           mean         count
                  Survived    Survived    Survived
Sex        
 
female               233    0.742038           314
male                  109    0.188908           577

 

728x90
반응형