Pandas Selection
[참조] 패스트캠퍼스 - 직장인을 위한 파이썬 데이터분석 올인원 패키지 Online.
Selection
Column 선택
df['이름']
열 이름을 지정해서 선택한다.
df.이름
이렇게 코드를 작성할 수도 있지만 잘 사용되지 않는 방식이기 때문에 위와 같이 작성한다.
index에 대한 범위 선택
df[:3]
인덱스 3미만의 데이터를 선택한다.
df.head(3)
head()
를 사용해도 동일한 결과를 얻을 수 있다.
loc
loc를 이용해 행과 열에 조건을 주어 데이터를 선택할 수 있다.
df.loc[:, '이름']
모든 행에서 ‘이름’ 열의 데이터를 출력한다.
df.loc[:, ['이름', '생년월일']]
모든 행에서 ‘이름’ 열과 ‘생년월일’ 데이터를 출력한다.
df.loc[3:8, ['이름', '생년월일']]
3행부터 8행까지 ‘이름’ 열과 ‘생년월일’ 데이터를 출력한다. 3:8
부분을 보면 numpy와 다르게 이하로 처리하기 때문에 주의해야 한다.
iloc
열 이름이 아니라 포지션으로 색인하는 것이 가능하다.
df.iloc[:4, [0, 2]]
처음부터 3행까지 0, 2번쨰에 위치한 열의 데이터를 출력한다. :4
를 보면 iloc은 loc와 다르게 numpy 규칙을 따른다.
df.iloc[1:5, 1:4]
1 ~ 4행, 1 ~ 3열에 해당되는 데이터를 출력한다.
Boolean Indexing
데이터를 선택할 때 Boolean Indexing 조건을 주어 조건을 만족하는 데이터만 색인해 낼 수 있다.
df[df['키'] < 170]
하지만 조건을 만족하는 모든 열의 데이터를 가져오게 된다.
df[df['키'] > 180]['이름']
df[df['키'] > 180][['이름', '키']]
이렇게 해당 조건을 만족하는 ‘이름’ 열의 데이터 또는 복수열의 데이터 가져올 수 있다.
loc
loc를 활용하면 좀 더 쉽게 구현할 수 있다.
df.loc[df['키'] > 180, '이름']
df.loc[df['키'] > 180, '이름':'성별']
열 범위 지정하는 것도 가능하다.
df.loc[ df['키'] > 180, ['이름', '키']]
열을 복수개 선택할 때는 위와 같이 작성한다.
isin, isnull, insna, notnull
isin
my_condition = ['플레디스', 'SM']
df.loc[ df['소속사'].isin(my_condition) ]
isin()
메서드를 이용해 해당 데이터를 가지고 있는 행을 선택할 수 있다.
df.loc[df['소속사'].isin(my_condition), '이름']
isnull 또는 isna
Null
은 결측값을 의미하고 pandas에서는 Not a Number의 약자인 NaN
으로 표기한다.
df.isna()
df.isnull()
이와 같이 Data Frame에서 빠진 데이터를 알 수 있다.
df['그룹'][df['그룹'].isna()]
또는
df.loc[df['그룹'].isna()]
이와 같이 빠진 데이터만 색출해 낼 수가 있다.
notnull
isnull
과 isna
는 결측값을 색출해 냈다면 notnull
은 NaN
값이 아닌 값을 색출해 낼 수 있다.
df['그룹'].notnull()
df.loc[df['그룹'].notnull(), ['키', '혈액형']]
[참조] 패스트캠퍼스 - 직장인을 위한 파이썬 데이터분석 올인원 패키지 Online.
끝!