일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 리스트
- numpy
- SQL
- 조합
- maplotlib
- 문제풀이
- 파이썬
- INSERT
- matplotlib
- tree.fit
- 머신러닝
- plt
- DataFrame
- 스터디노트
- 기계학습
- MacOS
- Machine Learning
- Folium
- python
- 순열
- pandas
- 통계학
- 등차수열
- 자료구조
- pandas 메소드
- Slicing
- barh
- 재귀함수
- 등비수열
- pandas filter
Archives
- Today
- Total
코딩하는 타코야끼
[스터디 노트] Week5_1일차 [unit1 ~ 11] - EDA(CCTV) 본문
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)
반응형
'zero-base 데이터 취업 스쿨 > 스터디 노트' 카테고리의 다른 글
[스터디 노트] Week5_3일차 [unit1 ~ 11] - EDA(범죄) (0) | 2023.08.16 |
---|---|
[스터디 노트] Week5_2일차 [unit12 ~ 20] - EDA(CCTV) (0) | 2023.08.16 |
[스터디 노트] Week4_3일차 [unit31 ~ 47] - 알고리즘 문제 풀이 (0) | 2023.07.31 |
[스터디 노트] Week4_2일차 [unit19 ~ 34] - 알고리즘 (0) | 2023.07.31 |
[스터디 노트] Week4_1일차 [unit1 ~ 18] - 알고리즘 (0) | 2023.07.25 |