이번에는 해당 데이터 프레임으로 연습
1. a열을 제곱하게 되면 이런 결과값이 나옴
2. 제곱함수 my_sq을 만들어두고 이를 apply메서드 인자에 전달한다면 시리즈의 모든 데이터가 함수가 적용됨.
참고로 my_sq가 인자 1개만 받도록 함수를 만들어놨으니까 인자값을 1개만 받도록 해야함.
3. 만약 2개의 인자를 전달받는다면 2개의 인자를 전달해야함.
▶ 이를 통해 apply 메서드에 전달하는 함수의 첫 번째 인자는 데이터프레임이나 시리즈가 자동으로 전달되는걸 알수 있음.
2. 데이터프레임을 만들어서 apply메서드에 적용할 때는 axis 인자값을 0이나 1로 지정해서 함수를 열 또는 행방향으로 적용할 수 있음.
3. 그리고 3개의 인자를 입력받아 평균을 계산하는 함수를 만들고 데이터프레임에 적용시켜보면
TypeError: avg_3() missing 2 required positional arguments: 'y' and 'z'
라는 오류메세지가 출력된다. 이는 열 단위 데이터가 전달되었고 (a나 b), 그러니까 값으로 출력된게 아니라 축으로 전달된거. 그래서 열 단위로 데이터를 처리할 수 있도록 수정해야함.
4. 행 방향으로 할거면 shape[1]로 바꿔서 하면됨.
< 좀 더 많은 데이터로 apply 메서드 사용해보기 >
이번에 사용해볼 데이터는 seaborn에 있는 titanic 데이터 (씨본에도 있구나..ㅎ)
1. 누락값의 개수를 반환하는 count_missing 함수를 만들어봄. 판다스의 isnull 메서드는 누락값의 유무에 따라 True와 False를 적용한 데이터 프레임이 만들어짐.
그래서 넘파이의 sum 메서드를 전달해서 true값을 더해 누락값의 개수를 구할 수 있음.
2. 그리고 누락값의 비율을 계산하기 위한 prop_missing 함수를 만들기. count_missing 함수를 이용해 누락값 개수를 구하고 size 속성을 이용해 전체 데이터 수를 구해서 나누어서 출력함
누락값 비율이 아닌 데이터의 비율을 구하려면 prop_complete라는 함수를 만들어서 누락값의 비율을 빼서 값을 구할 수도 있음.
행 방향으로 적용해서 실행하려면 다음과 같이 axis = 1 로 인자값을 주면됨.
그리고 누락값의 개수를 구해서 데이터프레임에 num_missing이라는 새로운 열을 추가해줄 수도 있다.
3. 그러면 num_missing 열을 사용해서 누락값이 2개 이상인 데이터도 추출해낼 수 있다.
'데이터분석 > Pandas&Numpy' 카테고리의 다른 글
pandas iloc, loc, boolean Indexing/Slicing (0) | 2023.07.06 |
---|---|
Kaggle - Titanic 데이터로 연습하는 Pandas 01 (0) | 2023.07.05 |
Numpy tolist 메서드 (0) | 2023.07.04 |
pandas 특수한 자료형 - 카테고리 (0) | 2023.07.03 |
pandas 잘못 입력한 데이터 처리하기 (0) | 2023.07.03 |