ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 판다스 정리
    ESG부트캠프/판다스 입문 2023. 3. 14. 22:15
    # 개요 확인
    df.info()

    # 컬럼 형변환
    df = df.astype({'month' : 'int', 'week' : 'int'})

    # 행 자르기
    df = df[1:10]

    # 결측치 제거
    df = df.dropna(axis = 0) 행 전체 제거
    df = df.dropna(axis = 1) 열 전체 제거
    df = df.dropna(subset = ['컬럼명'], how = 'any', axis = 0) 특정 컬럼에 nan있는 행 제거

    # 컬럼명 변경
    df.columns = ['컬럼명1', '컬럼명2', '컬럼명3'] 컬럼명 전부 써줘야 됨
    df.rename(columns = {'원래컬럼명' : '바꿀컬럼명'}, inplace = True) 지정 변경

    # 컬럼 피쳐 항목 확인
    print(pd['컬럼명'].unique())

    # 레이블 인코딩
    from sklearn.preprocessing import LabelEncoder
    df['컬럼명'] = LabelEncoder().fit_transform(df['컬럼명'].values)

    # 원 핫 인코딩
    temp = pd.get_dummies(df['컬럼명'])

    # 데이터프레임 세로로 합치기 병합
    result = pd.concat([df1, df2], axis = 0) join = 'inner/outer' 가능

    # 데이터프레임 가로로 합치기 병합
    result = pd.concat([df1, df2], axis = 1) join = 'inner/outer' 가능

    # 데이터프레임 특정 키를 기준으로 합치기 병합
    df_result = pd.merge(df1, df2, how = 'outer')

    # 데이터프레임 인덱스 초기화
    df.reset_index(drop = True, inplace = True)

    # 컬럼을 인덱스로 사용
    df.set_index('컬럼명', inplace=True)

    # 특정 컬럼 제거
    df.drop('컬럼명', axis = 1, inplace = True)

    # 표준화(StandardScaler) 피쳐별 평균0 분산1 가우시안 정규분포인 넘파이 배열로 변환
    from sklearn.preprocessing import StandardScaler
    scaler = StandardScaler()
    scaler.fit(df)
    df_scaled = scaler.transform(df)

    # 정규화(MinMaxScaler) 피쳐별로 0~1 사이의 값으로 정규화
    from sklearn.preprocessing import MinMaxScaler
    scaler = MinMaxScaler()
    scaler.fit(df)
    df_scaled = scaler.transform(df)

    # ndarray <-> 데이터프레임 변환
    arr = np.array(df)
    df = pd.DataFrame(data = arr)

    # 0으로 채워진 n차원 배열 생성
    arr = np.zeros()

    # 넘파이 데이터 차원 확인
    print(arr.shape)

    # 데이터프레임 그룹화
    pd.groupby(by = '컬럼명')
    pd.groupby(level = '인덱스')

    # 위치 기반 인덱싱
    df.iloc[2:5]

    # 레이블 기반 인덱싱
    df.loc['값 또는 컬럼명']

    # 데이터 정렬
    df.sort_values('컬럼명', ascending = True/False) 오름치순/내림차순

    # 랜덤 표본 추출
    temp_df = df.sample(frac = 0.5) 1/2 크기의 랜덤 표본 추출
    temp_df = df.sample(n = 10) 10줄의 랜덤 표본 추출

    # 특정 표본 추출
    temp_df = df.nlargest(n, 'value’) 개수, 기준값
    temp_df = df.nsmallest(n, 'value') 개수, 기준값
    temp_df = df.head(n) 맨 앞 몇개
    temp_df = df.tail(n) 맨 뒤 몇개

    # 정규표현식 이용 추출
    temp_df = df.filter(regex = 'regex')
    정규표현식
    '\.' : Matches strings containing a period '.'
    '문자열$' : '문자열'로 끝나는 값
    '^문자열' : '문자열'로 시작하는 값
    '^x[1-5]$' : x로 시작하고 1,2,3,4,5로 끝나는 값
    '^(?!Species$).*' : Matches strings except the string 'Species'

    # 결측치 채우기
    df.fillna(value) 널 값을 value로 치환.

    # 상관계수
    df.corr(method = 'pearson')
    df.corrwith(other_df, axis = 0, drop = False, method = 'pearson')
    method 종류 : pearson, kendall tou, spearman

    # 메소드체이닝 예시
    df['컬럼명'] = df['컬럼명'].strip.replace('바꾸고싶은 문자열', '바꿀 문자열').get([0])















Designed by Tistory.