Python/Pandas12 [Python] Pandas - 18. map(), apply(), applymap() map, apply, applymap은 pandas에서 일괄적으로 값을 변경할 때 이용하는 함수로 다음과 같은 차이가 있다. apply(): 데이터프레임(DataFrame)과 시리즈(Series)에 모두 적용 가능 map(): 시리즈(Series)에만 적용 가능 applymap(): 데이터프레임(DataFrame)에만 적용 가능 [문제 출처] https://www.datamanim.com/dataset/99_pandas/pandasMain.html#time-series 1. map (1) 시리즈 기본 형태 df2 = df["컬럼명"].apply(lambda x:x/2) (2) 문제 풀이 예 Q. Income_Category의 카테고리를 apply 함수를 이용하여 다음과 같이 변경하여 newIncome 컬.. Python/Pandas 2023. 11. 13. [Python] Pandas - 12. groupby, pivot, pivot_table 1. group by split - apply - combine 1️⃣ split: 몇가지 기준에 따라 데이터를 그룹으로 분할한다. 2️⃣ applying: 각 그룹에 독립적으로 함수를 적용한다. 3️⃣ combining: 결과를 데이터 구조로 결합한다. 적용단계에서 할 수 있는 것들 1️⃣ 집계 각각에 대한 요약 통계(또는 통계)를 계산 그룹의 합계, 평균 그룹의 크기, 개수 2️⃣ 변환 일부 그룹 별 계산을 수행하고 같은 인덱싱된 개체 그룹 내에서 데이터(zscore)를 표준화 그룹 내의 NA를 각 그룹에서 파생된 값으로 채운다. 3️⃣ 필터링 그룹별 계산에 따라 일부 그룹 삭제 참 또는 거짓을 평가 구성원이 소수인 그룹에 속한 데이터를 삭제합니다. 그룹 합계 또는 평균을 기준으로 데이터를 필터링합니.. Python/Pandas 2022. 10. 26. [Python] Pandas - 10. 구간 나누기(cut, qcut) 1. pd.cut( ) 연속된 수치를 구간으로 나누어 카테고리화 할 때 사용 - bins 옵션: 나누고자 하는 구간의 개수 설정 - labels: 카테고리 명을 설정, 지정한 bins의 개수보다 1개 적어야 한다. - 절대평가, 고객을 구매금액을 기준으로 구간을 나눌 때 train["SalePrice_cut"] = pd.cut(train["SalePrice"], bins = 4, labels = [1,2,3,4]) 2. pd.qcut() 동일한 갯수를 갖도록 구간 분할(즉 데이터의 분포를 최대한 비슷하게 유지하려고 할 때 사용) - bins대신 q 옵션을 사용한다. - qcut 역시 labels 지정 가능하다. - 상대평가, 고객을 고객의 수를 기준으로 구간을 나눌 때 train["SalePrice_qc.. Python/Pandas 2022. 10. 26. [Python] Pandas - 9. dt접근(datetime) dt 접근자로 접근한다. dt 접근자로 접근하려면 타입이 datetime이어야 한다. pd.to_datetime()을 사용하면 datetime 타입으로 변환할 수 있다. df_grade['날짜'] = pd.to_datetime(df_grade['날짜']) - pandas.Series.dt.year: 연도 - pandas.Series.dt.month: 월 - pandas.Series.dt.day: 일 - pandas.Series.dt.hour: 시 - pandas.Series.dt.minute: 분 - pandas.Series.dt.second: 초 - pandas.Series.dt.microsecond: micro 초 - pandas.Series.dt.nanosecond: nano 초 - pandas.S.. Python/Pandas 2022. 10. 26. [Python] Pandas - 8. value_counts(빈도수 확인), sort_(정렬하기) 1. 컬럼 값 분포 확인하기 df_grade.value_counts( ) 컬럼별 빈도수를 출력해준다. df_grade.value_counts(1) 컬럼별 빈도수의 비율을 출력해준다. 2. 정렬하기 1) 지정한 값으로 정렬하기: sort_values sort_values(by = ['기준1', '기준2], ascendig = [False, True]): 값을 기준으로 정렬 default는 오름차순이다. df_grade.sort_values(by = "학점", ascending=False) df_grade.sort_values(by = ["학점", "이름"], ascending= [False, True]) # ascending = true: 오름차순 // ascending = false: 내림차순 2) 인덱.. Python/Pandas 2022. 10. 26. [Python] Pandas - 7. 데이터프레임 원하는 값만 출력하기 import pandas as pd df_grade = pd.DataFrame() df_grade["이름"] = ["김가영", "정나영", "이다영"] df_grade["나이"] = [27, 26, 28] df_grade["성별"] = ["남자", "냠자", "냠자"] df_grade["학점"] = ["4.5", "4.0", "3.5"] df_grade["성"] = ["kim", "jeong", "LEE"] df_grade 1. 데이터프레임과 시리즈 출력하기 print(df_grade): 데이터프레임 출력 prinnt(df_grade["이름"]): 시리즈 출력 2. 컬럼명으로 원하는 값 출력 1) 1개 컬럼 가져오기 df_grade["이름"] #시리즈 형태로 가져오는 것이다. [ ] 2) 다수의 컬럼 가.. Python/Pandas 2022. 10. 26. [Python] Pandas - 6. 데이터프레임 컬럼/행 추가, 변경, 삭제 1. 컬럼, 컬럼값 추가하기 세로로 한 줄 추가된다. 1) 컬럼명과 값 직접 입력해서 추가하기 import pandas as pd df_grade = pd.DataFrame() df_grade["이름"] = ["김가영", "정나영", "이다영"] 값을 하나만 입력할 경우 해당 컬럼에 하나의 값이 일괄적으로 입력된다. df_grade["나이"] = 25 나이 컬럼에 25가 일괄적으로 입력될 것이다. 2) insert로 추가하기 중간에 컬럼을 추가하고 싶은 경우 insert( ) 활용 insert(컬럼 인덱스, 컬럼명, 값) 2. 컬럼값 변경하기 위에서 나이 컬럼에 일괄적으로 25라는 값이 입력되었기에 나이 컬럼 값을 바꿔보자. df_grade["나이"] = [27, "nan", 28] nan 값을 입력할 .. Python/Pandas 2022. 10. 26. [Python] Pandas - 5. 데이터프레임 출력, 타입, 전치, 미리보기, 기술통계, 통계값(집계/상관계수 등) [공식문서] https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html 시리즈 속성과 메서드 게시글에서 언급했듯이 어트리뷰트는 괄호를 쓰지 않고, 메서드는 괄호( )를 사용한다. 또한 접근하고자 하는 데이터 뒤에 점을 찍고 사용하며 연결해서 사용할 수도 있다.(메서드체이닝) 1. 인덱스 출력 및 지정 1) 인덱스 출력 데이터프레임명.index 2) 인덱스 지정 데이터프레임명.index = [index로 지정할 것] # 기본 값은 RangeIndex이다. 2. 컬럼명 출력 데이터프레임명.columns 3. value 값 출력 데이터프레임명.values 모든 값을 출력, numpy array형식으로 출력 4. 데이터 타입 .. Python/Pandas 2022. 10. 26. [Python] Pandas - 4. 데이터프레임 기본개념, 생성, 인덱싱과 슬라이싱(출력) [공식문서] https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html 1. 데이터프레임이란? 1) 2차원 배열로, 행과 열로 구성되어 있다. 2) 각 열은 각각의 데이터 타입(dtype)을 가진다. 2. 데이터프레임 생성하기 pd.DataFrame( [ ] )을 사용해서 데이터프레임을 생성할 수 있다. 1) 리스트를 통해 생성(2차원 리스트를 대입) 생성 시 columns를 지정하면 각 열에 대한 컬럼명을 지정할 수 있다. pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], columns = ['컬럼1', '컬럼2', '컬럼3']) 2) 딕셔너리를 통해 생성 딕셔너리의 key값이 자동.. Python/Pandas 2022. 10. 26. [Python] Pandas - 3. 시리즈 어트리뷰트와 메서드 시리즈의 속성과 메서드에 대해 알아보자. [시리즈 공식문서] https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.html?highlight=series#pandas.Series 공식문서에서 시리즈에서 사용할 수 있는 속성과 메서드를 자세하게 확인할 수 있다. 참고로 어트리뷰트는 괄호를 쓰지 않고, 메서드는 괄호( )를 사용하니 꼭 기억하자. 또한 접근하고자 하는 데이터 뒤에 점을 찍고 사용하며 연결해서 사용할 수도 있다.(메서드체이닝) 1. values - 데이터 값(value)만 가져오기 시리즈명.values value 값만 numpy array 형식으로 가져온다. 2. ndim - 시리즈의 차원 출력 시리즈명.ndim 시리.. Python/Pandas 2022. 10. 26. [Python] Pandas - 2. 시리즈 기본개념, 시리즈 생성, 인덱싱, 슬라이싱 [시리즈 공식문서] https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.html?highlight=series#pandas.Series 1. Series란? 시리즈는 1차원 배열이다. 인덱스가 사용가능하고, 데이터 타입(dtype)을 갖는다. 2. 시리즈 생성 1) 값을 변수에 할당하고 변수로 생성하기 arr = np.arange(10, 15) # numpy array로 리스트 생성 ser = pd.Series(arr) 2) 리스트를 사용해서 생성하기 snack = pd.Series(["포카칩", "새우깡", "포스틱", "홈런볼"]) 단, series에 다양한 데이터 타입(str, int 등)이 섞여있다면 object 타입으.. Python/Pandas 2022. 10. 26. [Python] Pandas - 1. 기본개념, 파일 불러오기 파이썬에서 정말 정말 자주 사용하는 라이브러리 중 하나인 pandas에 대해 하나씩 배워보도록 하겠다. [판다스 공식문서] https://pandas.pydata.org/docs/reference/index.html 1. Pandas란? pandas는 행과 열 구조의 데이터 분석 도구로 두 가지 대표적인 자료 구조가 있다. 1) DataFrame: 행렬, 2차원 구조 2) Series: 벡터, 1차원 구조 2. 라이브러리 로드 import pandas as pd 판다스의 별칭은 주로 pd를 사용한다. 3. 파일 불러오고 저장하기 1) 엑셀 불러오기 pd.read_excel('파일명.xlsx') 2) CSV 파일 불러오기 pd.read_csv('파일명.csv') 파일명 뒤 확장자는 대소문자를 구분하니 참고.. Python/Pandas 2022. 10. 26. 이전 1 다음