본문 바로가기
반응형

머신러닝을 위한 파이썬 기초40

[파이썬 판다스] 데이터프레임 결측치 수 및 위치 확인 열별 결측치 수 확인 데이터프레임 df 의 열별 결측치 수를 확인하는 방법은 아래와 같습니다. df.isnull().sum() 특정 열의 결측치 위치 확인 데이터프레임 df에 A라는 열이 있다고 합시다. 열 A의 결측치 위치를 출력하는 방법은 아래와 같습니다. df.loc[df['A'].isnull(),'A'] 출력 예시는 아래와 같습니다. >>> df.loc[df['A'].isnull(),'A'] 58 NaN 141 NaN 156 NaN 222 NaN 246 NaN 318 NaN 336 NaN Name: A, dtype: float64 2023. 9. 6.
[파이썬 판다스] 데이터프레임 결측치 제거하는 방법 데이터프레임의 결측치를 제거할 때는 dropna 메소드를 사용합니다. df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False) 다양한 옵션들이 있는데요 많이 사용되는 옵션은 하나입니다. df.dropna(axis=0) axis가 0이면 결측치가 포함된 행을 제거하고, axis 가 1이면 결측치가 포함된 열을 제거합니다. 행 제거가 기본값입니다. 따라서 대부분의 경우 아래와 같이 입력하면 됩니다. df.dropna() 2023. 9. 6.
[파이썬 판다스] 데이터프레임 열이름, 행이름 확인, 행 이름 리셋 df 라는 변수에 데이터프레임이 입력되어 있을 때 행이름과 열이름을 확인하는 방법입니다. 행 이름을 0부터 리셋하는 방법도 함께 알아봅시다. 1) 행 이름 확인 df.index 2) 열 이름 확인 df.columns 3) 행 이름 리셋 df.reset_index(drop=True, inplace=True) drop : 기존 인덱스를 삭제(True), 열로 추가(False) inplace : 원본 객체 변경(True), 원본 객체 유지 (False) 2023. 9. 6.
[파이썬] ValueError: Expected 2D array, got 1D array instead: 오류 해결 방법 입력값이 1차원 배열이라서 발생하는 문제입니다. 1차원 배열을 2차원으로 바꿔주면 되는데, 그 방법을 알아봅시다. 아래와 같은 1차원 배열이 있습니다. ar=np.array([1,2,3,4,5]) 차원을 확인해봅시다. >>> ar.ndim 1 1차원입니다. 위 배열을 2차원 배열로 바꾸는 방법은 아래와 같습니다. ar2=ar.reshape(5,1) >>> ar2 array([[1], [2], [3], [4], [5]]) 차원을 확인해봅시다. >>> ar2.ndim 2 2차원으로 바뀌었습니다. 변환을 편하게 하는 법 변환할 때, (5,1) 을 입력했는데 이때 5는 배열 원소 수입니다. 배열 원소 수가 얼마든 상관 없이 (어쩌구,1)로 변형하고 싶을 때는 -1을 사용하면 됩니다. 아래와 같이 사용합니다. >.. 2023. 9. 5.
파이썬에서 ROC 커브 그리고 AUC 구하는 방법 (사이킷런) 먼저 사용할 데이터를 설명하겠습니다. 어떤 질병의 진단에 사용하기 위해 특정 수치(value)를 정상인과 환자에서 측정하였습니다. 이 value 가 진단에 사용될 수 있는지 ROC 커브를 그려서 알아보았습니다. 코드에 대한 설명은 주석으로 대신합니다. import pandas as pd import numpy as np from sklearn.metrics import roc_curve, roc_auc_score, auc, RocCurveDisplay import matplotlib.pyplot as plt # 데이터 생성 (정상인과 환자의 진단결과값) normal=[11.1, 14.3, 13.1, 12.5, 12.4, 12.3, 12.1, 10.4 ,14.4 ,12.9] patient =[15.8, 1.. 2023. 9. 5.
[파이썬 matplotlib] 그래프 그리는 방법 (fig 와 ax 의 의미 이해하기) matplotlib 를 통해 그래프를 그리는 방법은 여러가지라 처음 접하시는 분들은 헷갈릴 수 있습니다. 가장 많이 사용하는 방법을 먼저 익히는 것이 좋은 방법 같습니다. 가장 많이 사용하는 방법은 subplots 라는 메소드를 사용하는 것입니다. 먼저 산점도 그래프를 그리는 예시를 살펴봅시다. import matplotlib.pyplot as plt x=[1,2,3] y=[5,6,7] fig, ax = plt.subplots(1,1) ax.plot(x, y, label='data1',linestyle='',marker='o') ax.legend() plt.show() 코드를 하나씩 설명하겠습니다. x와 y는 데이터입니다. (1,5), (2,6), (3,7) 이라는 점을 그래프로 그릴 것입니다. fig,.. 2023. 9. 5.
[파이썬 판다스] 데이터프레임 열의 타입을 factor 로 변형 데이터프레임의 특정 열의 타입을 factor로 바꾸는 방법을 알아봅시다. 특정 열의 타입을 범주형 타입으로 바꾸는 것입니다. 먼저 데이터프레임을 하나 정의합시다. import pandas as pd L1=[[1,2,3],[4,5,6],[7,8,9],[10,11,12]] df=pd.DataFrame(L1,columns=['C1','C2','C3'],index=['R1','R2','R3','R4']) 숫자 인덱스를 사용하여 열을 factor로 바꾸는 방법과 열 이름을 사용하여 바꾸는 방법이 있습니다. astype 메소드를 사용합니다. 1. 숫자 인덱스 사용 세번째 열의 타입을 범 df.iloc[:,2]=df.iloc[:,2].astype('category') 결과는 아래와 같습니다. 3열이 범주형 타입으로 .. 2023. 9. 5.
[파이썬 판다스] 데이터프레임 각 열의 타입 확인 방법 (dtypes, info) 먼저 데이터프레임을 하나 정의합시다. import pandas as pd df=pd.DataFrame({'C1':[1,2,3],'C2':[10,20,30],'C3':[100,200,300]},index=['R1','R2','R3']) 데이터프레임의 타입을 확인하는 메소드는 두가지가 있습니다. dtypes 와 info 입니다. 아래는 dtypes 를 적용한 결과입니다. >>> df.dtypes C1 int64 C2 int64 C3 int64 dtype: object 아래는 info 를 적용한 결과입니다. >>> df.info() Index: 4 entries, R1 to R4 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ .. 2023. 9. 5.
[파이썬 판다스] 데이터프레임 행이름,열이름 출력하기 판다스를 불러오고 데이터프레임을 하나 정의합니다. import pandas as pd df=pd.DataFrame({'C1':[1,2,3],'C2':[10,20,30],'C3':[100,200,300]},index=['R1','R2','R3']) 정의한 데이터프레임은 아래와 같습니다. >>> df1 C1 C2 C3 R1 1 10 100 R2 2 20 200 R3 3 30 300 열 이름과 행이름을 출력하는 방법은 아래와 같습니다. 1. 열 이름 출력 >>> list(df1.columns) ['C1', 'C2', 'C3'] 2. 행 이름 출력 >>> list(df1.index) ['R1', 'R2', 'R3'] 2023. 9. 5.
[파이썬 판다스] 데이터프레임 인덱싱 방법 (인덱스 vs 이름) 먼저 판다스 데이터프레임을 하나 만들어봅시다. import pandas as pd L1=[[1,2,3],[4,5,6],[7,8,9],[10,11,12]] df=pd.DataFrame(L1,columns=['C1','C2','C3'],index=['R1','R2','R3','R4']) 만들어진 데이터프레임은 아래와 같습니다. >>> df C1 C2 C3 R1 1 2 3 R2 4 5 6 R3 7 8 9 R4 10 11 12 데이터프레임 인덱싱을 하는 상황은 아래와 같이 나뉩니다 1) 인덱싱 방법 : 인덱스 or 이름 2) 인덱싱 결과 : 행 or 열 or 복합 인덱싱 방법으로 큰 분류를 나누고, 각 방법 안에서 인덱싱 결과를 행, 열, 복합으로 출력하는 방법을 알아봅시다. 1. 인덱스를 사용하여 인덱싱 il.. 2023. 9. 5.
반응형