| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- 독서
- advent of sql
- leetcode
- Datarian
- 퍼널분석
- 프로그래머스
- 데이터리안
- dense_rank
- 취준
- funnel
- SolveSQL
- SQL
- 누적합
- 리텐션
- 그로스해킹
- 데이터분석
- Retention
- 신입 데이터분석가
- 린분석
- pandas
- row_number
- MYSQL
- python
- 윈도우함수
- LEFTJOIN
- 서브쿼리
- regexp
- rank
- 순위함수
- 윈도우 함수
- Today
- Total
목록pandas (8)
데이터 분석
DataFrame.pivot() DataFrame.pivot() 메서드는 Pandas에서 데이터를 재구조화하는 데 사용한다. 이를 통해 열(column)을 재배치하거나 데이터의 행(row)과 열을 기준에 따라 재구성할 수 있다. 직접적인 데이터 변환:고유한 값만을 허용하며, 중복 값이 있을 경우 오류 발생세 가지 주요 매개변수:index: 새로운 DataFrame에서 행으로 사용할 열columns: 새로운 DataFrame에서 열로 사용할 열values: 새로운 DataFrame에서 값으로 사용할 열# 1아래 국가별 5세 이하 사망 비율 통계 자료가 있다. 위 데이터를 나라에 따른 년도별 사망률을 알아볼 수 있게 데이터를 재구조화 해보자. df2.pivot(index='Location', columns=..
날짜 데이터 다루기✔️ object 타입의 '(년-월-일:시)' 컬럼을 pandas에서 인식할 수 있는 datetime 형태로 변경해보자. 우선 pandas에서 datetime으로 인식 할 수 있는 데이터 형태는 다양하다. ● 날짜만 포함된 형식 : YYYY-MM-DD | YYYY/MM/DD | MM/DD/YYYY ● 날짜와 시간 포함된 형식 : YYYY-MM-DD HH:MM:SS | YYYY/MM/DD HH:MM | YYYY-MM-DDTHH:MM:SS제공 데이터에서 해당 컬럼의 형식이 '2021-05-15:15' 와 같이 되어있기 때문에 단계적으로 ' YYYY-MM-DD HH:MM:SS ' 형태로 가공하고자 한다. # Step 1 str 문자열 메소드를 활용해 ':'를 기준으로 문자열을 분..
날짜 데이터 다루기.dt.weekday VS .dt.day_name() VS .dt.strftime('%w')df['weekday'] = df['Yr_Mo_Dy'].dt.weekday # int returndf.insert(14, 'weekdayName', df['Yr_Mo_Dy'].dt.day_name())df.insert(14, 'weekday_1', df['Yr_Mo_Dy'].dt.strftime('%w'))df.head() # .dt.weekday()월요일은 0, 화요일은 1, ... , 일요일은 6에 대응하는 숫자를 반환한다. # .dt.strftime('%w')일요일은 '0', 월요일은 '1', ... , 토요일은 '6'에 대응하는 문자를 반환한다. # .dt.day_name()요일의 이름을 ..
문제 Yr_Mo_Dy에 년도가 2061년 이상의 경우에는 모두 잘못된 데이터이다. 해당경우의 값은 100을 빼서 새롭게 날짜를 Yr_Mo_Dy 컬럼에 정의하자. 해결방법 1df['Yr_Mo_Dy_1'] = df['Yr_Mo_Dy'].apply(lambda x : x.replace(year = x.year - 100) if x.year >= 2061 else x) ✅ Series.apply( ) : 각 날짜를 개별적으로 처리하기 위함 ✅ x.replace( ) : datetime 객체를 다루는 방식 중 하나로, 날짜에서 특정 구성 요소(예: 연도, 월, 일 ... )를 변경하는 데 사용 ☞ datetime.replace( ) 메소드는 날짜/시간 객체의 일부 속성을 새로운 값으로 대체하는 기능을 제공● y..
pd.Series.map() Series.map() : Series 객체에 있는 각 요소에 대해 변환을 수행할 수 있다. ● 함수를 적용 ● dictionary를 사용해 매핑 # 1Income_Category의 카테고리를 map 함수를 이용하여 다음과 같이 변경하여 newIncome 컬럼에 매핑해보자.(Unknown : N / Less than $40K : a / $40K - $60K : b / $60K - $80K : c / $80K - $120K : d / $120K + : e) df['newIncome'] = df['Income_Category'].map({'Unknown':'N', 'Less than $40..
pd.DataFrame.unstack() 'neighbourhood' 값과 'neighbourhood_group' 값에 따른 'price' 컬럼의 평균을 계산한 데이터프레임을 가정하자.df.groupby(['neighbourhood', 'neighbourhood_group'])[['price']].mean() df.unstack() ● 데이터프레임이 위와 같이 멀티인덱스를 사용할 때, 하위 레벨 인덱스를 컬럼으로 옮겨 데이터를 재구조화 가능 ● 기본적으로 가장 하위 레벨(-1)을 컬럼으로 이동하며, 다른 레벨을 지정하려면 level 파라미터를 사용 가능df.groupby(['neighbourhood', 'neighbourhood_group'])[['price']].mean().unstack()..
특정 조건에 부합하는 값만 변경하기 ✔️df의 데이터 중 아래와 같이 item_name 값이 'Izze'인 데이터를 'Fizzy Lizzy'로 변경하고자 한다. (1) Series.replace() 활용df['item_name'] = df['item_name'].replace('Izze', 'Fizzy Lizzy') 값 전체를 대상으로 변경하기 때문에 regex=True 옵션을 필요로 하지 않는다. (2) .loc 활용df.loc[df['item_name'] == 'Izze', 'item_name'] = 'Fizzy Lizzy' 특정 조건을 만족하는 행과 열을 지정하여 값만 변경할 수 있는 방법이다. 단순 대체가 필요한 상황이라면 방법 (1)도 적합하겠지만, 조건에 따른 변경이 빈번한 상황에 대응하기..
문제 'item_price' 컬럼의 달러 표시 문자를 제거하고 float 타입으로 저장하여 새로운 'new_price' 컬럼 가공 Solution (1) .str.replace 메소드를 활용df['new_price'] = df['item_price'].str.replace('\$', '', regex=True).astype('float')df.head() .str.replace()는 문자열 처리에 유용한 메소드로, 정규표현식을 사용해 특정 패턴을 찾아 변경할 수 있다.정규표현식 '\$'는 $ 문자를 의미하며, regex=True 옵션을 통해 이를 문자열에서 제거한다. 장점: 직관적이고, 문자열 전처리에서 자주 사용 (2) Series.replace 활용df['new_price'] = df['item_pr..