[머신러닝] 판다스란

하스레·2023년 5월 6일
0

판다스란

  • 넘파이와 같이 머신러닝에서 데이터를 처리할 때 사용.
  • 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 정렬하기

  • sort_values() 사용
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

profile
Software Developer

0개의 댓글