판다스란
- 넘파이와 같이 머신러닝에서 데이터를 처리할 때 사용.
- 2차원 데이터 처리에 좋음.
판다스의 데이터 인덱싱 및 필터링
numpy의 ndarray와 pandas의 dataframe의 가장 큰 차이점은, dataframe에는 컬럼이 있다는 것.
- []: 컬럼 기반의 필터링이나 불린 인덱싱 필터링 제공
- loc[]: 명칭(컬럼명) 기반의 인덱싱 제공
- iloc[]: 위치 기반의 인덱싱 제공. 0을 시작점으로. (Pandas의 Index 사용x)
=> iloc[]가 ndarray의 ary[0:2] 이런 인덱싱 기능을 함.
- 불린 인덱싱: 조건식에 따른 필터링 제공
ex_bool = ex_df[ex_df['Age'] > 20]
DataFrame 정렬하기
df_sorted = df.sort_values(by = ['column_name'], ascending = False)
- by 파라미터에 정렬 기준 컬럼을 넣어줌.
- 오름차순이 디폴트고, 내림차순시 ascending=False 설정
DataFrame의 집합 연산 수행: Aggregation
- sum(), max(), min(), count(), mean() 등을 사용하여 DataFrame과 Series에서 집합 연산을 수행할 수 있다.
- sql과 다르게, DataFrame에서 바로 집합연산을 수행하면 모든 컬럼에 그걸 적용한다.
- groupby(): sql과 비슷하면서도 다름
- by 파라미터로 컬럼명을 넣으면 DataFrameGroupBy 객체를 반환하는데, 이 DataFrameGroupBy 객체에 집합 연산을 수행하는 것.
Missing Data(결손 데이터) 처리하기
- isna(): DataFrame에서 사용. 주어진 컬럼의 값들이 NaN인지 Boolean값 반환한다.(NaN이면 True 반환)
- fillna(): Missing Data를 파라미터로 넘겨받은 값으로 대체함.
- 머신러닝 인자값으로 널 값을 허용하지 않음. 그래서 널 값 처리하는 것 중요!
nunique()
print(df['Age'].nunique())
replace()
- 어떤 컬럼에서 특정 값을 모두 다른 원하는 값으로 변경
# Sex의 male값을 Man으로 변경
replaced_df['Sex'].replace('male', 'Man')
replaced_df['Sex'] = replace_test_df['Sex'].replace({'male':'Man', 'female':'Woman'})
apply lambda
def get_square(a):
return a**2
get_square = lambda x: x**2
# 둘이 같은 결과!
- 이 lambda를 통해서 데이터를 가공할 수 있음.
df['Name_len'] = df['Name'].apply(lambda x: len(x))
https://www.inflearn.com/course/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EC%99%84%EB%B2%BD%EA%B0%80%EC%9D%B4%EB%93%9C/dashboard