: quantile메서드는 해당 행/열의 분위수의 해당하는 값을 반환하는 메서드입니다.
백분위수(Percentile)는 오름차순 정렬했을 때 0을 최소값, 100을 최대값으로 백분율로 나타낸 특정 위치 값입니다. 따라서 사분위수는 25, 50, 75를 기준 점으로 나눠져 1분위부터 4분위까지 존재하게 됩니다.
판다스와 넘파이 모듈을 이용해 백분위수를 구해보겠습니다.
pandas 함수명은 quantile( ), numpy 함수명은 percentile( )입니다.
<특히 주의할 점은>
pandas의 quantile함수의 q(백분위수)는 0과 1사이 값을 입력하고
numpy의 percentile함수의 q(백분위수)는 0과 100사이 값을 입력합니다.
따라서 중앙값을 구할때 quantile( ) q값을 0.5, percentile( ) q값을 50으로 입력해야 합니다.
Pivot_table이 매우 편리한 기능을 갖고 있음에도 불구하고 몇가지 아쉬운 점이 있다면 앞서 설명한대로 values의 순서를 변경하기 위해서 추가적인 절차를 해야 한다는 점, 그리고 칼럼과 칼럼간의 연산을 통한 새로운 칼럼을 추가하는 방법을 적용하기 어렵다는 것이다.
: 특정 범주로 데이터를 쪼개서 연산을 처리한 후에 다시 하나로 묶어서 데이터를 병합하는 것이 groupby이다.
: pivot_table은 매우 유용하고 강력한 기능을 제공하고 있지만 그 문법이 조금 까다롭다(까다로운 이유는 여러 가지 기능을 활용할 수 있기 때문이다).
여기서 주의할 점은
All 컬럼은 흡연자와 비흡연자를 구분하지 않은 평균 값이다.
: 교차표는 그룹의 빈도를 계산하기 위한 피벗테이블의 한 유형이다.
crosstab의 처음 두 인자는 배열이나 시리즈 혹은 배열의 리스트가 올 수 있다.
pd.crosstab이다.
첫번째 들어가는 것이 국적 -> 인덱스
두번째 들어가는 것이 손 -> 컬럼
여기에 margins=True를 넣을 수도 있다.
: 시계열 자료는 인덱스가 날짜 혹은 시간인 데이터를 말한다.
이번에는 판다스가 아닌 파이썬 자체의 datetime 모듈을 사용해보겠습니다. 그중에서도 strptime 과 strftime 을 비교해볼 건데요.
[parse string to datetime]
:문자열을 시계열로 파싱한다.
[string from time]
:시계열을 문자열로 바꾼다.
: 사용해 날짜 형식을 변환하는 방법
◆ %d : 0을 채운 10진수 표기로 날짜를 표시
◆ %m : 0을 채운 10진수 표기로 월을 표시
◆ %y : 0을 채운 10진수 표기로 2자리 년도
◆ %Y : 0을 채운 10진수 표기로 4자리 년도
◆ %H : 0을 채운 10진수 표기로 시간 (24시간 표기)
◆ %I : 0을 채운 10진수 표기로 시간 (12시간 표기)
◆ %M : 0을 채운 10진수 표기로 분
◆ %S : 0을 채운 10진수 표기로 초
◆ %f : 0을 채운 10진수 표기로 마이크로 초 (6자리)
◆ %A : locale 요일
◆ %a : locale 요일 (단축 표기)
◆ %B : locale 월
◆ %b : locale 월 (단축 표기)
◆ %j : 0을 채운 10진수 표기로 년중 몇 번째 일인지 표시
◆ %U : 0을 채운 10진수 표기로 년중 몇 번째 주인지 표시 (일요일 시작 기준)
◆ %W : 0을 채운 10진수 표기로 년중 몇 번째 주인지 표시 (월요일 시작 기준)
strftime() 원하는 서식을 지정해 날짜 형식을 변경할 수 있습니다.
'문자열'이 datetime으로 바뀌었다.
- pd.to_datetime 함수
- pd.date_range 함수
Date 컬럼의 자료형 변환하기
pd.date_range(start=시작, end=끝, 개수, 간격)
date_range는 기본적으로 시작 시간이나 종료 시간의 타임스탬프를 보존한다
- s: 초
- T: 분
- H: 시간
- D: 일(day)
- B: 주말이 아닌 평일
- W: 주(일요일)
- W-MON: 주(월요일)
- M: 각 달(month)의 마지막 날
- MS: 각 달의 첫날
- BM: 주말이 아닌 평일 중에서 각 달의 마지막 날
- BMS: 주말이 아닌 평일 중에서 각 달의 첫날
- WOM-2THU: 각 달의 두번째 목요일
- Q-JAN: 각 분기의 첫달의 마지막 날
- Q-DEC: 각 분기의 마지막 달의 마지막 날
pandas.Series.rolling
: rolling 메서드는 현재 열에 대하여 일정 크기의 창(window)를 이용하여 그 window안의 값을 추가 메서드를 통해 계산하는 메서드 입니다.
- 특징
- 주어진 인덱스들은 반드시 정수의 인덱스 위치로 이루어진 ndarray나 리스트이어야 한다.
- take()메서드는 또한 음수의 정수도 사용할 수 있다.
- 파이썬과 마찬가지로 끝에서 부터의 상대적 위치를 의미한다.- .iloc 메서드로 같은 작업을 수행 할 수 있다.
- 하지만 .iloc 메서드 보다 빠르기 때문에 최적화에 적합하다.
- take() 메서드는 iloc 메서드와 마찬가지로 정수 기반의 위치인덱스를 사용하기 때문에, 멀티인덱스가 적용되지 않는다.
resuit=object.take(indices,axis=0)
object : 메서드가 적용되는 객체로 DataFrame, Series 등이 해당된다.
axis : 메서드를 적용할 축을 입력받는다.
0 or index : 행의 인덱스를 정렬한다.(기본값)
1 or columns : 열의 인덱스를 정렬한다.
-> pandas 객체에서 take()메서드는 불린인덱스(boolean index)를 적용할 수 없다.
False는 0으로 True는 1이란 정수로 인식한다.
출처:
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=wideeyed&logNo=221609442389 -> quantile
https://wikidocs.net/155537 -> quantile
https://wikidocs.net/46755 -> 피봇테이블 정리
https://steadiness-193.tistory.com/52?category=947982 -> 피벗테이블 깔끔정리
https://steadiness-193.tistory.com/56?category=947982 -> 교차알림표 깔끔정리
https://datascienceschool.net/01%20python/04.08%20%EC%8B%9C%EA%B3%84%EC%97%B4%20%EC%9E%90%EB%A3%8C%20%EB%8B%A4%EB%A3%A8%EA%B8%B0.html -> 시계열 정리
https://ponyozzang.tistory.com/626 -> strftime()
https://hiio.tistory.com/30 -> to_datetime
https://kongdols-room.tistory.com/181?category=817565-> take
https://ordo.tistory.com/67 [우 주 신:티스토리] -> rolling