위 사진을 보면 True, False 결과가 나오는 데 이를 이용하여 마스킹 연산이 가능하다.
df[(df["A"]<0.5)&(df["b"]>0.3)]
위 소스에서
(df["A"]<0.5)&(df["b"]>0.3)
를 실행 했을 때 그 전 사진 처럼 Ture,False가 출력이 된다 이를 이용하여 다시 한번 df[ ] 안에 넣는다면 True에 해당되는 값이 출력이 된다.
df.query("A<0.5 and B>0.3")
이 코드는 query라는 함수를 이용하여 ( ) 안에 있는 조건을 실행 후 출력을 해준다.
df["animal"].str.contains("Cat")
df.animal.str.match("Cat")
df["animal"] == "Cat"
위 소스 역시 똑같은 결과가 나온다.
df["Num"].apply(squere)
같은 경우는 Num이라는 곳에 함수를 인자로 넣는 걸 의미한다.
그 결과 제곱된 결과가 오른쪽 출력사진 처럼 출력이 된다.
df["Square"] = df["Num"].apply(square)
위 코드 처럼 사용한다면 동일하게 출력이 된다.
위 사진처럼 데이터가 있을 경우 이를 처리하기 위해 아래 사진처럼 함수를 작성한다.
groupby('key')
해당 코드는 key 값을 기준으로 그룹을 이루게된다.
groupby('key').sum()
코드 같은 경우 key값 기준으로 더한 값으로 그룹을 이룬다.
groupby(['key','data1']).sum()
해당 소스는 key와 data1을 그룹으로 정렬하고 sum연산을 진행하여 추가로 데이터 출력이 된다.
aggregate를 통해 집계를 한번에 계산할 수 있다.
filter를 통해 그룹 속성을 기준으로 데이터를 필터링하여 출력할 수 있다.
groupby로 묶인 데이터도 apply가 가능하다.
get_group 을 통해 묶인 데이터에서 key 값으로 데이터를 갖고올 수 있다.
인덱스를 계층적으로 만들 수 있다.
다중 인덱스 컬럼의 경우 인덱싱은 계층적으로 가능하다.
인덱스 탐색의 경우 loc,iloc를 사용할 수 있다.
아래와 같이 데이터가 있을 경우
성별과 좌석별 생존률을 구하려면 아래와 같이 구할 수 있다.
아래와 같이 왼쪽 사진처럼 데이터가 있을 경우