분류 전체보기
Pandas 활용(10) - 데이터프레임 합치기(concat, merge)
pandas의 concat() 과 merge() 는 둘 다 데이터프레임을 합치는 함수이지만 약간의 차이가 있는데 concat() 은 단순히 여러 개의 데이터프레임을 합치는 것에 중점을 두고 있고, merge() 는 2개의 데이터프레임을 설정한 기준대로 합치는 것이다. 아래 예제들을 통해 사용법을 알아보자. raw_data = { 'Employee ID': ['1', '2', '3', '4', '5'], 'first name': ['Diana', 'Cynthia', 'Shep', 'Ryan', 'Allen'], 'last name': ['Bouchard', 'Ali', 'Rob', 'Mitch', 'Steve']} df_Engineering_dept = pd.DataFrame(raw_data, column..
Pandas 활용(9) - 데이터프레임 정렬하기 sort_values, sort_index
데이터프레임 정렬 value를 정렬할 땐 sort_values(), index를 정렬할 땐 sort_index() 를 사용한다. import pandas as pd df = pd.DataFrame({'Employee ID':[111, 222, 333, 444], 'Employee Name':['Chanel', 'Steve', 'Mitch', 'Bird'], 'Salary [$/h]':[35, 29, 38, 20], 'Years of Experience':[3, 4 ,9, 1]}) df # 경력을 오름차순으로 정렬 df.sort_values('Years of Experience') # 경력을 내림차순으로 정렬 df.sort_values('Years of Experience', ascending=False)..
Pandas 활용(8) - str 관련 메소드
import pandas as pd df = pd.DataFrame({'Employee ID':[111, 222, 333, 444], 'Employee Name':['Chanel', 'Steve', 'Mitch', 'Bird'], 'Salary [$/h]':[35, 29, 38, 20], 'Years of Experience':[3, 4 ,9, 1]}) df 이전 포스트에서 apply()를 이용해, Employee Name 컬럼에 있는 이름의 문자 갯수를 구해서 새로운 컬럼에 저장했는데 또 다른 방법으로 .str.len()을 사용할 수 있다. # Employee Name의 이름의 문자 갯수를 구해서, # 새로운 컬럼 length에 저장하세요. df['Employee Name'].str.len() >>> ..
Pandas 활용(7) - 함수의 일괄 적용 apply
데이터프레임을 조작하다 보면 내가 정의해놓은 함수에 따라서 전체 데이터프레임이나 특정한 컬럼의 값들을 일괄적으로 변경하기를 원할 수 있다. 이런 경우에 pandas의 apply 함수를 활용한다. import pandas as pd df = pd.DataFrame({'Employee ID':[111, 222, 333, 444], 'Employee Name':['Chanel', 'Steve', 'Mitch', 'Bird'], 'Salary [$/h]':[35, 29, 38, 20], 'Years of Experience':[3, 4 ,9, 1]}) df 직원 이름의 글자 수를 구해서 새로운 컬럼 length에 저장하려고 한다. 파이썬 기본내장함수로 문자열의 길이를 구하는 함수 len() 이 있으므로 appl..
Pandas 활용(6) - 범주로 묶어 집계하기 groupby, agg
groupby() groupby()는 데이터를 범주별로(categorical) 묶어서 통계 또는 집계 결과를 얻기 위해 사용한다. import pandas as pd df = pd.read_csv('../data/fake_company.csv') # 파일 경로를 입력 df # 각 년도별로, 지급한 연봉 총합을 구하세요. df.groupby('Year') >>> # 년도별로 그룹화한 GroupBy객체가 생성된다 df.groupby('Year')['Salary'].sum() >>> Year 1990 153000 1991 162000 1992 174000 Name: Salary, dtype: int64 # 각 직원 별로, 얼마씩 받았는지 연봉 평균을 구하세요. df.groupby('Name')['Salary'..
Pandas 활용(5) - 결측값(NaN) 처리
데이터에 결측값이 있을 경우 데이터 분석을 하기 위해 처리하는 전략은 크게 3가지가 있다. 무시하기 제거하기 다른 값으로 대체하기 첫 번째 무시하기는 그냥 무시하고 진행하면 된다. 제거와 대체하는 방법에 대해 알아보자. items2 = [{'bikes': 20, 'pants': 30, 'watches': 35, 'shirts': 15, 'shoes':8, 'suits':45}, {'watches': 10, 'glasses': 50, 'bikes': 15, 'pants':5, 'shirts': 2, 'shoes':5, 'suits':7}, {'bikes': 20, 'pants': 30, 'watches': 35, 'glasses': 4, 'shoes':10}] import pandas as pd df = ..
Pandas 활용(4) - 인덱스명, 컬럼명 변경
import pandas as pd df df.rename() 인덱스나 컬럼의 이름을 바꾼다. 파라미터로 인덱스나 컬럼을 지정하고 인자로 딕셔너리를 전달한다. 딕셔너리의 key 값은 기존 이름, value 값은 바꿀 이름 df.rename(index={'store 1': 'first store', 'store 3': 'last store'}) df.rename(columns={'bikes':'hats', 'suits': 'shoes'}) df.set_index() 원하는 리스트를 직접 전달하거나 컬럼명을 입력해서 인덱스로 지정할 수 있다. df['name'] = ['A', 'B', 'C'] df df.set_index('name', inplace=True) # inplace=True : 메모리에 저장..
Pandas 활용(3) - 데이터프레임의 데이터 변경, 추가, 삭제
In [1]: from IPython.display import display, HTML display(HTML("")) # 코드 입력창의 너비를 조정하는 코드입니다. 판다스 데이터프레임의 데이터 변경, 추가, 삭제¶ In [2]: import pandas as pd In [3]: items2 = [{'bikes': 20, 'pants': 30, 'watches': 35}, {'watches': 10, 'glasses': 50, 'bikes': 15, 'pants':5}] In [4]: df = pd.DataFrame(data= items2, index= ['store 1', 'sto..