목록판다스 (13)
말랑말랑제리스타일
파이썬에서 주로 볼 수 있는 lambda라는 용어는 뭐고 어떻게 사용하는건지 알아봅시다. 그리고 나서 판다스 map 메서드에서 lambda를 사용하는 예시도 한번 알아보겠습니다. Lambda 함수란? lambda 함수는 비단 파이썬에서 뿐만 아니라 많은 프로그래밍 언어에서 사용되는 단어로 익명 함수를 선언할 때 사용하게 됩니다. 이 lambda 함수란 익명 함수라는 말로 말 그대로 이름이 없는 함수입니다. def get_p_add10(p): return p + 10 print(get_p_add10(1)) print((lambda p: p + 10)(1)) 파이썬에서 보통 함수를 선언할 때 def 라고 선언하고 함수명과 파라미터를 정의해준 뒤 함수 내용을 써내려가죠. lambda 함수는 약간 다릅니다. l..
RDBMS를 다뤄봤다면 누구나 알고있을 Union all 집합연산과 Join 기능이 판다스의 DataFrame에도 있습니다. 이번 장에서는 먼저 Union All 기능과 동일한 pandas.concat() 함수로 두개의 DataFrame을 합쳐보겠습니다. test_df = pd.read_csv("/content/test.csv") test_df_p1 = test_df.loc[test_df.Pclass == 1] test_df_p2 = test_df.loc[test_df.Pclass == 2] test_df_p3 = test_df.loc[test_df.Pclass == 3] # 0.DataFrame 생성 test_df_p12 = pd.concat([test_df_p1,test_df_p2]) # 1.p1과 ..
Pandas에서 DataFrame을 이용한 작업을 하다 보면 컬럼 명이나 인덱스를 수정해야할 때가 있습니다. 그럴 때 rename() 또는 rename_axis() 함수를 이용해볼 수 있습니다. test_df = pd.read_csv("/content/test.csv") # 0.DataFrame 생성 test_df=test_df.rename(columns={'Age':'AgeBand'}) # 1. 컬럼명 수정 test_df=test_df.rename(index={0:'1st', 1:'2nd',2:'3rd'}) # 2.index 수정 test_df=test_df.rename_axis("id_no",axis = 'rows').rename_axis("field",axis = 'columns') # 3. 컬럼과..
DataFrame의 모든 값이 꼭 채워져있으리란 법은 없습니다. 이번 장에서는 DataFrame의 null인 값을 확인하는 방법과 null인 값을 다른 값으로 채워넣는 방법을 알아봅시다. import pandas as pd test_df = pd.read_csv("/content/test.csv") test_df[test_df.Age.isnull()] #1.null인 값 확인 test_df.Age = test_df.Age.fillna(test_df.Age.mean()) #2.null인 값 채우기 test_df.Embarked = test_df.Embarked.replace('C','1').replace('Q','2').replace('S','3') #3.값대체 1. null인 값 확인 DataFrame의..
Pandas의 DataFrame은 Index와 여러개의 컬럼으로 구성되어있습니다. 여기서 각각의 컬럼은 서로 다른 데이터타입을 가질 수 있습니다. 이 각각의 DataFrame 컬럼이 어떤 데이터타입을 사용하고있는지 확인하기 위해서는 dtype이라는 속성을 이용할 수 있습니다. import pandas as pd test_df = pd.read_csv("/content/test.csv") test_df.Pclass.dtype test_df.dtypes 3번째 줄에 있는 것과 같이 DataFrame.컬럼.dtype이라는 속성값을 이용해서 이 컬럼 하나의 데이터 타입을 확인할 수 있습니다. 마찬가지로 DataFrame.dtypes 속성을 이용하면 해당 DataFrame의 전체 컬럼의 데이터타입을 Series ..
판다스의 데이터 집계 함수는 여타 RDB 쿼리와 동일하게 group by를 사용합니다. 그렇다면 데이터 정렬은 어떨까요? 오라클을 비롯한 RDB의 SQL문에서는 order by절을 사용해 데이터를 정렬하지만 판다스의 DataFrame을 정렬하기 위해서는 sort_index와 sort_values라는 기능을 이용하게 됩니다. 두가지 정렬 방법의 사용법은 매우 간단하니 빠르게 설명하겠습니다. 1. sort_index 말그대로 index 순으로 정렬하는 기능입니다. test_df.sort_index() 기본적으로 이렇게 사용할 수 있으며, index 순으로 정렬합니다. 만약 해당 DataFrame의 인덱스가 2개 이상이라면 앞의 인덱스부터 정렬됩니다. 2. sort_values 감이 바로 오시겠지만 DataF..
오라클이나 MS-SQL 등 RDB를 사용해보신 분들은 모두 익히 잘 알고있을만한 기능, group by 절은 판다스에도 존재합니다. 이름 역시 group by와 동일하게 DataFrame.groupby(조건) 으로 사용 가능하죠. 그럼 지금부터 실제 코드와 함께 살펴봅시다. 1. 싱글 group by 사용 test_df.groupby('Pclass').Pclass.count() test_df.groupby('Pclass').Age.min() 이와 같이 "DataFrame.groupby(그루핑할 필드).출력할필드.그룹함수" 형태로 판다스의 group by 절을 사용할 수 있습니다. 판다스에서 데이터 매핑을 하기 위한 apply와 데이터 조회를 하기 위한 loc 또는 iloc를 이용해서 group by 절을..
판다스에서 데이터를 필요한 데이터로 가공하거나 매핑하는 작업은 매우 중요합니다. 그리고 판다스에는 유용한 매핑 함수가 두개 있는데요. 바로 map()과 apply() 입니다. 지금부터 판다스의 매핑 방법 두가지를 알아보겠습니다. 1. map map은 apply에 비해 보다 간단한 소스코드로 매핑할 수 있습니다. 간단한 예시로 살펴보겠습니다. test_df_age_mean = test_df.Age.mean() test_df.Age.map(lambda p : p - test_df_age_mean) 이와 같이 파이썬의 람다함수(익명함수) 기능을 이용해서 데이터를 매핑하게 되는데요 간단히 위 소스를 설명하면 test_df_age_mean이라는 변수에 Age 즉 나이의 mean 값(평균값)을 넣고 판다스의 데이터..