Python Pandas 마스터하기 11 ~ 20

이번 포스팅은 Python pandas 마스터하기 위한 두 번째 포스팅입니다. 이번 포스팅 내용을 학습하기 전에 이전 포스팅(htPython pandas 마스터하기 1 ~10) 내용을 학습하시기 바랍니다. 간단한 예제 코드와 설명을 포함한 100가지 Python pandas 코드 중 No 11 ~ 20개에 대해서 살펴보겠습니다.

DataFrame에서 결측치 제거 방법

sortedFilteredSelectedColumns.dropna(inplace = True)
sortedFilteredSelectedColumns
-----------------------------------------------------------------------
        crno	    corpRegMrktDcdNm	fncoEmpeCnt	newFncoEmpeCnt
75	1101110108484	유가	                17992	        323712064
346	1101112365321	기타	                17083	        291828889
36	1101110023393	기타	                14268	        203575824
755	1101350000903	유가	                13901	        193237801
19	1101110012809	기타	                13635	        185913225
...	...	...	...	...
985	1801110750893	유가	                110	        12100
140	1101110296073	유가	                109	        11881
97	1101110133572	기타	                108	        11664
357	1101112614786	기타	                108	        11664
491	1101114127034	기타	                107	        11449

이 코드는 DataFrame인 sortedFilteredSelectedColumns에서 결측치가 있는 행을 제거합니다. inplace = True 매개변수는 변경 사항을 sortedFilteredSelectedColumns에 직접 적용합니다. 모든 열에 결측치가 존재하지 않아, 결과는 변하지 않습니다.


DataFrame에서 결측치 대체 방법

pivotDf.fillna(0, inplace = True)
------------------------------------------

직업	자영업	학생	회사원	ageTotal
성별				
Female	0.0	    35.0	0.0	    35.0
Male	40.0	0.0	   45.0	    85.0

여기서는 DataFrame인 pivotDf의 모든 열의 결측치를 0으로 채우는 코드를 보여드립니다. inplace = True 매개변수를 사용하여 변경 사항을 DataFrame에 직접 적용합니다.


열에 대한 산술 연산을 수행하는 방법

pivotDf['ageTotal'] = pivotDf['자영업'] + pivotDf['학생'] + pivotDf['회사원']
pivotDf
------------------------------------------
직업	자영업	학생	회사원	ageTotal
성별				
Female	0.0	    35.0	0.0	    35.0
Male	40.0	0.0	    45.0	85.0

이 코드는 DataFrame인 pivotDf의 ‘자영업’과 ‘학생’과 ‘회사원’를 요소 별로 합하여 결과를 새로운 ‘ageTotal’ 열에 할당합니다.


열에 문자열 연산을 적용하는 방법

finalData2['newColumn'] = finalData2['성별'].str.upper()
finalData2
----------------------------------------------------------
	이름	성별	직업	newColumn
0	철수	Male	회사원	MALE
1	영희	Female	학생	FEMALE
2	영남	Male	자영업	MALE

DataFrame인 finalData2의 ‘성별’ 열의 값에 upper() 문자열 메서드를 적용하고 결과를 새로운 ‘newColumn’ 열에 저장하는 코드입니다.


DataFrame을 melt() 함수를 사용하여 재구성하는 방법

meltedDf = pd.melt(pivotDf.reset_index(), id_vars='성별', value_vars=['자영업', '학생', '회사원'], var_name='직업', value_name='나이')
meltedDf 
---------------------------------
       성별	직업	나이
0	Female	자영업	0.0
1	Male	자영업	40.0
2	Female	학생	35.0
3	Male	학생	0.0
4	Female	회사원	0.0
5	Male	회사원	45.0

DataFrame인 pivotDf의 인덱스 초기화(pivotDf.reset_index()) 이후 다중 열을 하나의 열로 녹이는 방식으로 DataFrame을 다시 구성합니다. ‘성별’ 열은 식별자로 유지되며, ‘자영업’과 ‘학생’과 ‘회사원’은 행으로 나열하기 위한 열이며, ‘직업’과 ‘나이’는 새로운 열에 할당된 이름입니다.


행 또는 열을 가로지르는 작업을 수행하는 방법

rowSum = pivotDf.sum(axis = 1)
rowSum
-------------------------------
성별
Female     70.0
Male      170.0
dtype: float64

이 코드는 DataFrame인 pivotDf의 각 행에 대한 값의 합계를 계산합니다. axis=1 매개변수는 행을 따라 모든 열의 합계를 계산해야 함을 나타냅니다.


DataFrame에 사용자 정의 함수를 적용하는 방법

def custom_function(row):
    return row['나이'] * 2

meltedDf['NewColumn'] = meltedDf.apply(custom_function, axis = 1)
meltedDf
-------------------------------------------
       성별	직업	나이	NewColumn
0	Female	자영업	0.0	    0.0
1	Male	자영업	40.0	80.0
2	Female	학생	35.0	70.0
3	Male	학생	0.0	    0.0
4	Female	회사원	0.0	    0.0
5	Male	회사원	45.0	90.0

custom_function는 ‘나이’에서 계산을 수행하는 행을 입력으로 받는 사용자 정의 함수입니다. 그런 다음 apply() 메서드를 사용하여 이 함수를 DataFrame인 meltedDf의 각 행에 적용하고 결과를 ‘NewColumn’이라는 새 열에 할당합니다.


DataFrame을 NumPy 배열로 변환하는 방법

pivotDfNpArray = pivotDf.to_numpy()
pivotDfNpArray
---------------------------------
array([[ 0., 35.,  0., 35.],
       [40.,  0., 45., 85.]])

DataFrame인 pivotDfNpArray를 NumPy 배열인 pivotDfNpArray로 변환합니다. 이렇게 하면 다른 수치 연산 및 과학 계산 라이브러리와의 통합을 용이하게 해줍니다.


DataFrame에서 열 이름을 바꾸는 방법

meltedDf.rename(columns={'나이': '성별'}, inplace=True)
meltedDf
-------------------------------------------
       성별	직업	성별	NewColumn
0	Female	자영업	0.0	    0.0
1	Male	자영업	40.0	80.0
2	Female	학생	35.0	70.0
3	Male	학생	0.0	    0.0
4	Female	회사원	0.0	    0.0
5	Male	회사원	45.0	90.0

이 코드는 DataFrame인 meltedDf의 ‘나이’ 열을 ‘성별’로 이름을 변경합니다. inplace=True를 사용하여 변경 사항을 DataFrame에 직접 적용합니다.


DataFrame을 CSV 파일로 저장하는 방법

meltedDf.to_csv('D:/output.csv', index=False, encoding = 'UTF-8-sig')

DataFrame인 meltedDf를 D드라이브에 ‘output.csv’라는 이름의 CSV 파일로 저장합니다. index = False 매개변수는 저장된 파일에서 인덱스 열을 제외합니다. encoding = ‘UTF-8-sig’ 은 DataFrame에 한글이 있을 경우, 한글 깨짐 현상을 막아줍니다.

지금까지 100가지 Python pandas 예제 중 처음 20가지 주요 함수 및 예제 코드를 설명했습니다. 다음 부분에서는 더 많은 예제 코드와 자세한 설명을 계속 다룰 예정이니 많은 기대 부탁 드립니다.
(Python Pandas 마스터하기 21 ~ 30 바로가기)
감사합니다!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다