나도코딩 유튜브 + 외주 자료를 참고하여 만든 자료입니다.
조건에 해당하는 데이터를 가져오는 실습을 진행합니다.
1. 간단하게 시리즈 방식으로 조건에 맞는 데이터 가져오기
print(df['키']>= 185)
2. DataFrame을 이용하여 필터링하기
# 필터
filt = df['키']>= 185
#df[df['키']]>= 185
print(df[filt])
#print(df[~filt]) # 필터 역으로!
3. 조건 이용하여 원하는 칼럼 데이터 필터링하기
print(df.loc[df['키']>= 185, ['이름','수학']])
# row data, colum data 순
# 다양한 조건
# and 조건
print(df.loc[(df['키'] >= 185) & (df['학교'] == '북산고')])
#키가 185 이상의 북산고 데이터를 가져옴
# or 조건
print(df.loc[(df['키'] <= 170) | (df['키'] >= 200)])
import pandas as pd
df = pd.read_excel('score.xlsx')
df.set_index('순번', inplace = True)
# STR 함수
# 송씨 성만 가진 데이터 뽑기
filt = df['이름'].str.startswith('송')
print(df[filt])
# 태가 들어가는 사람 데이터 뽑기
filt = df['이름'].str.contains('태')
print(df[filt])
print(df[~filt])
langs = ['python','java']
filt = df['SW특기'].str.lower().isin(langs)
print(df[filt])
# 특기가 파이썩 혹은 자바인 사람 뽑는 거임
filt = df['SW특기'].str.contains('Java',na = False)
# nan 데이터에 대해서 False로 인지시킴
print(df[filt])
4. None 처리하기(결측치)
빈 데이터에서 contains 기능을 사용하면 ValueError가 뜹니다.
ValueError: Cannot mask with non-boolean array containing NA / NaN values
따라서 None 처리를 해야합니다!
- contains에서 nan 데이터 처리하는 방법은 정말 많이 사용할 듯합니다.
na = False : 데이터가 없을 때 조건에 해당되지 않음
na = True : 데이터가 없을 때 조건에 해당됨
- str.lower()을 하는 이유는, 문제에서 python,Python 등 대소문자가 난잡하게 되어 있기 때문입니다.
dataframe 전체의 NA 데이터를 바꾸는 과정입니다.
df = df.fillna('') # dataframe 전체의 NA 데이터를 ''으로 채움
df = df.fillna('없음')
특정 column의 NA 데이터를 바꾸는 과정입니다.
#특정 column의 Na 데이터를 바꾸고 싶을 때
df['SW특기'].fillna('없음',inplace=True)
# 이렇게 안하면 sw특기의 값만 가져옴
항상 저는 df를 재선언해서 값을 대입하였기 때문에 inplace를 사용하지 않았는데, 이 부분은 inplace를 사용하지 않으면 값이 다른 데이터가 나옵니다. df['sw특기']의 값을 먼저 가져오고 그 값을 처리하는 것 같습니다. (Series와 동일하게 적용됩니다.)
inplace를 자주 사용하는 습관을 가져야겠습니다.
NA 데이터를 포함하는 데이터를 삭제하는 과정입니다.
df.dropna(inplace=True) #전체 NaN 포함하는 데이터 삭제
df.dropna(axis = 'index', how = 'any',inplace= True)
#axis : None이 있을 때 row를 지울 지 columns을 지울 지 판단
#how : any : 하나라도 있으면 지우기or all 모든게 row면 지움
print(df)
'파이썬 > 파이썬 데이터 분석, 데이터처리' 카테고리의 다른 글
Pandas) 데이터 분석 9편, 함수 적용 및 그룹화 (0) | 2023.01.16 |
---|---|
Pandas) 데이터 분석 8편, 데이터 정렬 및 row, column 데이터 수정 (0) | 2023.01.16 |
Pandas) 데이터 분석 6편, loc, iloc의 이해 (0) | 2023.01.15 |
Pandas) 데이터 분석 4편, 데이터 분석, 데이터 파싱, Column 추출 (0) | 2023.01.15 |
Pandas) 데이터 분석 3편, 파이썬으로 만든 데이터를 csv, excel 파일로 저장 및 읽기 (0) | 2023.01.15 |
댓글