코딩하는 타코야끼

[스터디 노트] Week5_1일차 [unit1 ~ 11] - EDA(CCTV) 본문

zero-base 데이터 취업 스쿨/스터디 노트

[스터디 노트] Week5_1일차 [unit1 ~ 11] - EDA(CCTV)

가스오부시 2023. 8. 16. 00:57
728x90
반응형

1. Pandas의 기초


📍 기초 메소드


2. DataFrame 자주 사용하는 메소드


📍 df.info( )df.inf

  • DataFrame의 기본 정보 확인
  • 여기서는 각 컬럼의 크기와 데이터형태를 확인하는 경우가 많다


📍 Series.unique( )

  • 특정 DataFrame의 에서 고유한 값들을 얻고자 할 때 사용합니다.
df["구별"].unique()
>>>
array(['종로구', '중구', '용산구', '성동구', '광진구', '동대문구', '중랑구', '성북구', '강북구',
       '도봉구', '노원구', '은평구', '서대문구', '마포구', '양천구', '강서구', '구로구', '금천구',
       '영등포구', '동작구', '관악구', '서초구', '강남구', '송파구', '강동구'], dtype=object)

📍 df.describe( )

  • DataFrame의 통계적 기본 정보 확인


📍 pd.Series( )

  • Pandas의 데이터형을 구성하는 기본은 Series이다
s = pd.Series([1, 3, 5, np.nan, 6, 8])
s
>>>
0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
5    8.0
dtype: float64

📍 pd.date_range( )

  • pd.date_range("날짜", 기간(일)): 날짜(시간)를 이용할 수 있다
dates = pd.date_range("20230101", periods = 6)
dates
>>>
DatetimeIndex(['2023-01-01', '2023-01-02', '2023-01-03', '2023-01-04',
               '2023-01-05', '2023-01-06'],
              dtype='datetime64[ns]', freq='D')

📍 pd.DataFrame( )

  • pd.DataFrame(배열, index, columns)
df = pd.DataFrame(np.random.randn(6, 4), index = dates, columns = ["A", "B", "C", "D"])
df


📍 df[ 읽을 컬럼 ]

  • 특정 컬럼만 읽기.
df["A"]
>>>
2023-01-01    0.403336
2023-01-02   -0.239835
2023-01-03   -1.709471
2023-01-04    0.646113
2023-01-05   -0.885848
2023-01-06   -0.691921
Freq: D, Name: A, dtype: float64
# [n:m]: n 부터 m-1 까지
# 그러나 인덱스나 컬럼의 이름으로 slice하는 경우는 끝을 포함함
df["2023-01-01":"2023-01-04" ]


📍 df.loc / df.iloc

⚡️ df.loc[ ]

# 이름으로도 사용 가능
# Pandas의 보편적인 slice 옵션
df.loc["2023-01-02":"2023-01-04", ["A","C"]]

⚡️df.iloc[ ]

df.iloc[[1, 2, 4], [0, 2]]


📍 df[condition]

  • DataFrame

df[df["A"] < 0]


📍 del df / df.drop( )

⚡️ del df

  • del df["열"]: 영구적인 삭제, 변경 적용 O
del df["E"]
df

⚡️ df.rop

  • .drop( ): 단순 조회, 변경 적용 X
  • 하지만 'inplace = True'로 변경 적용 가능.
  • axis=0 가로, axis=1 세로
df.drop(["F"], axis = 1, inplace = True)
df

 


📍 df.sort_values( )

  • Pandas DataFrame의 sort_values() 메소드는 DataFrame을 하나 이상의 열을 기준으로 정렬하는 데 사용됩니다.
  • 이 메소드는 정렬된 DataFrame을 반환하며 원래 DataFrame은 변경되지 않습니다. 
    • by: 하나의 열 또는 열 리스트를 나타내며 이를 기준으로 DataFrame이 정렬됩니다.
    • axis: 기본값은 0입니다. 열을 기준으로 정렬합니다. 1로 설정하면 행을 기준으로 정렬합니다.
    • ascending: 기본값은 True입니다. True로 설정하면 오름차순으로 정렬하고, False로 설정하면 내림차순으로 정렬합니다.
    • inplace: 기본값은 False입니다. True로 설정하면 원본 DataFrame이 변경되고 반환 값이 없습니다. False로 설정하면 원본 DataFrame은 그대로 두고 정렬된 DataFrame이 반환됩니다.
    • kind: 기본값은 'quicksort'입니다. 정렬 알고리즘을 선택합니다. 'quicksort', 'mergesort', 'heapsort' 중 선택할 수 있습니다.
    • na_position: 기본값은 'last'입니다. 결측값(NaN)의 위치를 선택합니다. 'last'는 결측값을 맨 마지막에 두고, 'first'는 결측값을 맨 앞에 둡니다.
    df.sort_values(by="소계", ascending = False).head()



📍 df.set_index( )

  • Pandas DataFrame의 set_index() 메소드는 하나 이상의 열을 DataFrame의 인덱스(행 레이블)로 설정하는 데 사용됩니다.
  • 이 메소드는 새로운 DataFrame을 반환하며 원래 DataFrame은 변경되지 않습니다.
    • keys: 인덱스로 설정하려는 열 이름 또는 해당 열 이름의 리스트.
    • drop: 기본값은 True입니다. True로 설정하면 인덱스로 설정된 열을 DataFrame에서 삭제합니다. False로 설정하면 인덱스로 설정된 열이 DataFrame에 그대로 남아 있습니다.
    • append: 기본값은 False입니다. True로 설정하면 기존 인덱스 옆에 추가 인덱스를 설정합니다.
    • inplace: 기본값은 False입니다. True로 설정하면 원본 DataFrame이 변경되고 반환 값이 없습니다. False로 설정하면 원본 DataFrame은 그대로 두고 인덱스가 변경된 DataFrame이 반환됩니다.
    • verify_integrity: 기본값은 False입니다. True로 설정하면 새로운 인덱스의 중복을 확인합니다. 중복되는 인덱스가 있으면 에러를 발생시킵니다.
df.set_index("구별", inplace = True)
df.head()

 


📍 df.reset_index( )

  • Pandas DataFrame에서 인덱스로 설정된 열 이름을 다시 데이터 열로 되돌리려면 reset_index() 메서드를 사용하면 됩니다.
    • level: 인덱스 레벨을 지정합니다. 여러 레벨의 인덱스가 있는 경우 특정 레벨의 인덱스만 리셋할 수 있습니다. 기본적으로 모든 레벨의 인덱스를 리셋합니다.
    • drop: 기본값은 False입니다. True로 설정하면 인덱스 열을 완전히 삭제하고, False로 설정하면 인덱스 열을 일반 열로 되돌립니다.
    • inplace: 기본값은 False입니다. True로 설정하면 원본 DataFrame이 변경되고 반환 값이 없습니다. False로 설정하면 원본 DataFrame은 그대로 두고 인덱스가 리셋된 DataFrame이 반환됩니다.

📍 df.corr( )

  • Pandas DataFrame의 corr() 메서드는 DataFrame의 모든 열 사이의 상관 계수를 계산합니다.
  • 이 메서드는 상관 행렬을 반환하며, 상관 행렬의 각 요소는 -1과 1 사이의 값을 가집니다.
    • method: 상관 계수를 계산하는 데 사용할 방법을 지정합니다. 사용 가능한 메서드에는 'pearson' (Pearson 상관 계수), 'kendall' (Kendall의 tau), 'spearman' (Spearman 순위 상관 계수) 등이 있습니다. 기본값은 'pearson'입니다.
    • min_periods: 각 열 쌍에 대해 필요한 최소 관측치 수입니다. 지정된 값보다 적은 관측치가 있는 열 쌍의 경우 NaN이 반환됩니다.
df.corr()


3. DataFrame 합치기

📍 pd.concat():

  • pd.concat()는 여러 데이터프레임을 위아래나 좌우로 연결합니다.
  • 주로 같은 형식의 데이터를 단순히 연결할 때 사용됩니다.
result = pd.concat([df1, df2])

📍 pd.merge():

  • pd.merge()는 SQL 스타일의 조인을 사용하여 두 데이터프레임을 병합합니다.
  • 키를 기반으로 두 데이터프레임을 병합합니다.
result = pd.merge(df1, df2, on='key_column')

📍 DataFrame.join():

  • DataFrame.join()은 인덱스를 기반으로 한 데이터프레임을 다른 데이터프레임에 조인합니다.
  • pd.merge()와 유사하게 동작하지만, 기본적으로 인덱스를 사용하여 조인합니다.
result = df1.join(df2)
반응형