python 누적 분포 함수 관련 질문입니다.
조회수 742회
안녕하세요. 파이썬에 입문한지 얼마 되지 않아 어려움을 느끼고 있는 입문자입니다.
얼마전에 질문을 올렸는데 질문의 정확한 의도를 작성하지 않은 것 같아 다시 질문합니다.
제가 궁금한 것은 어떠한 리스트로 누적 분포 함수를 구하는 것 입니다.
예를 들어
list = [4, 6, 6, 6, 7, 8, 8, 8, 9, 10, 10, 10, 10, 10, 11, 12, 12, 12, 12, 12, 20, 20]
이러한 리스트가 있을 때,
CDF = [1, 4, 4, 4, 5, 8, 8, 8, 9, 14, 14, 14, 14, 14, 15, 20, 20, 20, 20, 20, 22, 22]
위와 같은 형태와 직접적인 정수 값으로 나타난 누적 분포 함수 값을 구하고 싶습니다.
도움 감사합니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
pandas 에 rank 라는 메소드가 있습니다.
- https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.rank.html
- https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.rank.html
Python 3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:57:54) [MSC v.1924 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license()" for more information. >>> import pandas as pd >>> l = [4, 6, 6, 6, 7, 8, 8, 8, 9, 10, 10, 10, 10, 10, 11, 12, 12, 12, 12, 12, 20, 20] >>> s = pd.Series(l) >>> s 0 4 1 6 2 6 3 6 4 7 5 8 6 8 7 8 8 9 9 10 10 10 11 10 12 10 13 10 14 11 15 12 16 12 17 12 18 12 19 12 20 20 21 20 dtype: int64 >>> s.rank() 0 1.0 1 3.0 2 3.0 3 3.0 4 5.0 5 7.0 6 7.0 7 7.0 8 9.0 9 12.0 10 12.0 11 12.0 12 12.0 13 12.0 14 15.0 15 18.0 16 18.0 17 18.0 18 18.0 19 18.0 20 21.5 21 21.5 dtype: float64 >>> s.rank(method='max') 0 1.0 1 4.0 2 4.0 3 4.0 4 5.0 5 8.0 6 8.0 7 8.0 8 9.0 9 14.0 10 14.0 11 14.0 12 14.0 13 14.0 14 15.0 15 20.0 16 20.0 17 20.0 18 20.0 19 20.0 20 22.0 21 22.0 dtype: float64 >>>
댓글 입력