팬더 - 빈 세포 청소
빈 셀
빈 셀은 데이터를 분석할 때 잠재적으로 잘못된 결과를 제공할 수 있습니다.
행 제거
빈 셀을 처리하는 한 가지 방법은 빈 셀이 포함된 행을 제거하는 것입니다.
데이터 세트가 매우 클 수 있고 몇 개의 행을 제거해도 결과에 큰 영향을 미치지 않기 때문에 일반적으로 괜찮습니다.
예시
빈 셀이 없는 새 데이터 프레임을 반환합니다.
import pandas as pd
df = pd.read_csv('data.csv')
new_df = df.dropna()
print(new_df.to_string())
정리 예제에서는 'dirtydata.csv'라는 CSV 파일을 사용합니다.
dirtydata.csv를 다운로드 합니다. 또는 dirtydata.csv 열기
참고: 기본적으로 이 dropna()
메서드는 새 DataFrame을 반환하고 원본을 변경하지 않습니다.
원본 DataFrame을 변경하려면 다음
inplace = True
인수 를 사용하십시오.
예시
NULL 값이 있는 모든 행 제거:
import pandas as pd
df = pd.read_csv('data.csv')
df.dropna(inplace = True)
print(df.to_string())
참고: 이제 dropna(inplace = True)
새 DataFrame을 반환하지 않지만 원래 DataFrame에서 NULL 값을 포함하는 모든 행을 제거합니다.
빈 값 바꾸기
빈 셀을 처리하는 또 다른 방법은 대신 새 값을 삽입하는 것입니다.
이렇게 하면 일부 빈 셀 때문에 전체 행을 삭제할 필요가 없습니다.
이 fillna()
방법을 사용하면 빈 셀을 값으로 바꿀 수 있습니다.
예시
NULL 값을 숫자 130으로 바꿉니다.
import pandas as pd
df = pd.read_csv('data.csv')
df.fillna(130, inplace = True)
지정된 열에 대해서만 바꾸기
위의 예는 전체 데이터 프레임에서 모든 빈 셀을 대체합니다.
한 열의 빈 값만 바꾸려면 DataFrame 의 열 이름 을 지정하십시오.
예시
"칼로리" 열의 NULL 값을 숫자 130으로 바꿉니다.
import pandas as pd
df = pd.read_csv('data.csv')
df["Calories"].fillna(130, inplace = True)
평균, 중앙값 또는 최빈값을 사용하여 바꾸기
빈 셀을 바꾸는 일반적인 방법은 열의 평균, 중앙값 또는 최빈값을 계산하는 것입니다.
Pandas는 mean()
median()
및 mode()
메서드를 사용하여 지정된 열에 대한 각 값을 계산합니다.
예시
MEAN을 계산하고 빈 값을 다음과 같이 바꿉니다.
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].mean()
df["Calories"].fillna(x, inplace = True)
평균 = 평균값(모든 값의 합계를 값의 수로 나눈 값).
예시
MEDIAN을 계산하고 빈 값을 다음과 같이 바꿉니다.
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].median()
df["Calories"].fillna(x, inplace = True)
중앙값 = 모든 값을 오름차순으로 정렬한 후 가운데에 있는 값입니다.
예시
MODE를 계산하고 빈 값을 다음과 같이 바꿉니다.
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].mode()[0]
df["Calories"].fillna(x, inplace = True)
모드 = 가장 자주 나타나는 값.