[ZB] Python

porii·2024년 9월 23일

[edu] zerobase

목록 보기
4/28
  1. 데이터 불러오기
    import pandas as pd
    df = pd.read_csv(파일명)

    • 컬럼이 한글일 때
      df = pd.read_csv(파일명, **encoding = ‘euc-kr’**)
  2. 데이터 출력

    내용비고
    df.head()
    df.tail()
    상위 5개 행
    하위 5개 행
    ()안에 N → N개 행
    print(df.shape)데이터 행, 열 갯수 파악
    df.columns
    df.columns[N]
    전체 컬럼 출력
    N번째 컬럼 출력
    N : 0부터 시작
    df.iloc[:,N].dtypeN번째 컬럼 데이터타입[행, 열]
    : = 모든
    df.iloc[n-1, m-1]m번째 컬럼의 n번째 값
    df.select_dtypes(exclude=object).columns
    df.select_dtypes(include=object).columns
    수치형 변수 컬럼 출력
    범주형 변수 컬럼 출력
    df.isnull()sum()각 컬럼 결측치 수 파악
    df.info()컬럼 데이터 수, 데이터 타입 확인
    df.describe()수치형 변수 분포(기술통계값) 확인평균, 최소, 최대, 표준편차, 4분위수
    df[’x’]
    df[’x’].unique()
    df[’x’].nunique()
    x 컬럼 값 출력
    x 컬럼 유일값
    x 컬럼 유일값 개수
    df[’x’].quantile(0.75) - df[’x’].quantile(0.25)x 컬럼 4분위 범위 값 (IQR)
    astype(’데이터타입’)데이터타입 변형
    Filtering / Sorting
    df.sort_values(’x’)
    df.sort_values(’x’, ascending=False)
    x 컬럼 값에 따라 오름차순 정렬
    x 컬럼 값에 따라 내림차순 정렬
    default : 오름차순
    df.x.str.contains(’문자’)
    ~
    df.x.str.contains(’문자’)
    x 컬럼에서 특정 ‘문자’ 포함한 값 출력
    x 컬럼에서 특정 ‘문자’ 포함하지 않은 값 출력
    df.drop_duplicates(’x’)x 컬럼값 기준으로 중복값 제거 후 첫번째만 남김파라미터에 keep=’last’ 추가 시, 마지막 남김
    df.isin(리스트명)리스트에 있는 값 갖는 데이터
    Grouping
    df.value_counts()고유값을 센 후, 개수 기준 내림차순 정렬null값 세지 X
    dropna=False 추가 시, null값 셈
    df[’x’].agg([’max’, ‘min’])x 컬럼 값에 대해 aggregate function
    max, min, mean, var 등 대괄호로 여러 개 파라미터 가능
    df.unstack()계층적 indexing 없이
    df.fillna(대체값)NaN 대신 대체값 삽입ffill : 컬럼 기준 직전 값
    bfill : 컬럼 기준 이후 값
    Apply / Map
    df[’Y’] = df.X.map(lambda x : 조건 dic[x])X컬럼 값을 조건에 따라 매핑하여 컬럼 Y에
    X의 x값 —- 조건 —→ Y에 dic[x]
    Time
    df.rolling(N)N만큼 이동
    dt.day_name()요일명dt = datetime (pandas 인식)
    dt.weekday()0:월요일 ~ 6:일요일
    df.set_index(’x’)x컬럼을 index로inplace=True : 실제 데이터에 반영
    Pivot
    df.pivot_table(index=’’, columns=’’, values=’’)pivot하기
    values 없이 개수 구할 때는 aggfunc=’size’
    aggfunc=’’ 파라미터로 계산값 가능
    Merge / Concat
    pd.concat(리스트)리스트의 dataframe 합함 - 행 or 열 방향으로 (axis=01)
    df.T.iloc[]행과 열 구조 바꿈. Transpose
    pd.merge(df1,df2,on=key컬럼,how=방식)SQL의 Join과 같음how=’left’ : SQL의 left outer join
    on의 컬럼명이 다른 경우
    - left_on=’df1 컬럼명’
    - right_on=’df2 컬럼명’
    Statistics
    del df[’x’]x컬럼 삭제원본데이터 삭제되니 주의
    Series / DataframeSeries = Dataframe의 한 개 컬럼이 프레임 없이 있는
    pd.DataFrame({”컬럼명” : [컬럼값],
    “컬럼명” : [컬럼값]})
    데이터프레임 생성
    df[’new컬럼명’] = [컬럼값]컬럼 추가
    df.dtypes컬럼별 데이터타입
    df.copy()DF 복사
    df.index = [변경할 인덱스명]인덱스 변경
    df.to_csv(’파일명.csv’)csv파일로 저장
    <저장위치>
    import os
    os.getcwd() — directory 알려줌
    os.chdir(’특정경로’) — 경로 변경
    df.reset_index(drop=True)인덱스 재정렬drop=True : 본래 index 컬럼 없앰
    Visualization
    import matplotlib.pyplot as plt
    import seaborn as sns
    a = sns.histplot(df.x)히스토그램
    a.set(xlabel = ‘’, ylabel = ‘’, title =””)
    a = sns.jointplot(x=””, y=””, data=df)산점도 + 히스토그램
    a = pairplot(df)df의 연속형 변수에 대하여 모든 조합으로
    산점도,히스토그램
    오래걸림
    a = sns.stripplot(x=””, y=””, data=df)카테고리형 데이터에 대한 연속형 변수 데이터 볼 때hue = ”” : 색 구분인자
    a = sns.boxplot(x=””, y=””, data=df)outlier 확인
    a = sns.FacetGrid(df, col=”x”)x컬럼 값에 따라 n개 그래프 생성
    a.map(plt.그래프종류, “x축기준”, “y축기준”)alpha = : 투명도(0~1)
    df.dropna()행 단위 삭제how=’any’ : NaN을 가진 행
  • iloc
    : 원하는 순서, 위치에 따라 데이터 출력
    loc
    : 원하는 값에 따라 데이터 출력 - 단일조건일 때는 생략 가능이나, [행,열] 조건 전부 적을 때는 필수
  • 데이터타입
    • int : 소숫점 없는
    • float : 소숫점 있는
  • ::2 = 짝수번째
  • map과 apply
  • Pivot - Index, Columns, Values
  • axis=0 : 행 기준 axis=1 : 열 기준
  • ~~ = np.nan : Nan값 입력 시
  • groupby → as_index : True - 컬럼을 인덱스로 가짐(default)

0개의 댓글