목록pandas (14)
말랑말랑제리스타일
데이터 분석을 하다보면 Nan 값 즉, 비어있는 값을 자주 보게 됩니다. 이런 Nan 값을 채우기 위해서 fillna 또는 SimpleImputer를 사용할 수 있는데요. 차이점은 SimpleImputer의 경우 이름처럼 Simple 하기 때문에 fillna보다 자유도가 떨어지는 대신 간단하게 값을 채울 수 있습니다. 예를 들어 SimpleImputer는 groupby 기능을 지원하지 않죠. SimpleImputer 사용방법 그럼 지금부터 본격적으로 SimpleImputer를 사용해 Nan 값을 채우는 방법을 보여드리겠습니다. import pandas as pd from sklearn.impute import SimpleImputer #사이킷런의 SimpleImputer Import my_imputer ..
두개의 DataFrame을 합치는 방법은 크게 두가지입니다. 단순히 row에 붙여서 합치는 concat 함수와 인덱스 별로 붙여주는 join() 합수입니다. 1. 두개의 DataFrame 생성 바로 코드로 설명하기에 앞서 Pandas 기능을 이용해 join을 하기에 유의미한 데이터를 만들어보겠습니다. train_df = pd.read_csv("/content/train.csv") train_df['AgeBand'] = train_df.Age.map(lambda p: p//10) train_df_p1 = train_df.loc[train_df.Pclass == 1].groupby(['Embarked','AgeBand']).apply(lambda p : p.loc[p.PassengerId.idxmax()])..
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 절을..