본문 바로가기
반응형

시리즈22

[파이썬 판다스] 시리즈에서 데이터를 분할표로 만들기 (unstack) 독립변수가 2개이고, 종속변수는 1개인 데이터를 하나 정의합시다. 독립변수는 지역, 성별이고 종속변수는 인구수 입니다. import pandas as pd import numpy as np #데이터 생성 sr1=pd.Series([50,50,30,30,20,20], index=[['서울','서울','경기','경기','제주',"제주"],['남자','여자','남자','여자','남자','여자']]) >>> sr1 서울 남자 50 여자 50 경기 남자 30 여자 30 제주 남자 20 여자 20 dtype: int64 위 데이터를 분할표로 만들 때는 unstack 메소드를 사용하면 됩니다. >>> sr1.unstack() 남자 여자 경기 30 30 서울 50 50 제주 20 20 자료형을 확인해봅시다. 데이터프레.. 2022. 2. 24.
[파이썬 판다스] 시리즈에서 인덱스 여러 층으로 정의하기 (계층적 인덱스) 독립변수가 두개 이상인 자료를 표로 정리해야하는 경우가 있습니다. 예를들어 독립변수가 거주지, 성별이고 종속변수가 인구 수인 경우를 생각해봅시다. 독립변수 : 거주지, 성별 종속변수 : 인구 수 표로 정리하면 아래와 같습니다. 파이썬 시리즈에서 위 표를 정의해봅시다. import pandas as pd import numpy as np #데이터 생성 sr1=pd.Series([50,50,30,30,20,20], index=[['서울','서울','경기','경기','제주',"제주"],['남자','여자','남자','여자','남자','여자']]) 인덱스를 2차원 리스트로 정의하면 됩니다. 결과는 아래와 같습니다. >>> sr1 서울 남자 50 여자 50 경기 남자 30 여자 30 제주 남자 20 여자 20 dt.. 2022. 2. 24.
[파이썬 판다스] 시리즈의 특정 값을 na 로 바꾸기 시리즈를 하나 정의합시다. import pandas as pd import numpy as np sr1=pd.Series([1,2,3,3,4,5]) 3을 na로 바꾸겠습니다. replace 메소드를 사용합니다. >>> sr1.replace(3,np.nan) 0 1.0 1 2.0 2 NaN 3 NaN 4 4.0 5 5.0 dtype: float64 2022. 2. 7.
[파이썬 판다스] 시리즈 원소 중 NaN 제거 넘파이와 판다스를 불러옵니다. import numpy as np import pandas as pd NaN이 포함된 시리즈를 하나 정의합니다. >>> sr1=pd.Series([1,np.NaN,3,4,5,np.NaN]) >>> sr1 0 1.0 1 NaN 2 3.0 3 4.0 4 5.0 5 NaN dtype: float64 NaN 을 제거할 때는 dropna 함수 또는 메소드를 사용합니다. >>> sr1.dropna() 0 1.0 2 3.0 3 4.0 4 5.0 dtype: float64 2022. 1. 13.
[파이썬 판다스] 시리즈 원소 중 NaN 확인 (isnull) 넘파이와 판다스를 불러옵니다. import numpy as np import pandas as pd NaN이 포함된 시리즈를 하나 정의합니다. >>> sr1=pd.Series([1,np.NaN,3,4,5,np.NaN]) >>> sr1 0 1.0 1 NaN 2 3.0 3 4.0 4 5.0 5 NaN dtype: float64 NaN 여부는 isnull 함수를 사용합니다. >>> pd.isnull(sr1) 0 False 1 True 2 False 3 False 4 False 5 True dtype: bool 또는 isnull 메소드도 가능합니다. >>> sr1.isnull() 0 False 1 True 2 False 3 False 4 False 5 True dtype: bool 2022. 1. 13.
[파이썬 판다스] 시리즈 원소 개수 판다스를 불러오고 시리즈를 하나 정의합시다. import pandas as pd sr1=pd.Series([1,2,3,4,5]) >>> sr1 0 1 1 2 2 3 3 4 4 5 dtype: int64 시리즈 원소 수를 구하는 방법은 아래와 같이 세 가지가 있습니다. >>> len(sr1) 5 >>> len(sr1.index) 5 >>> sr1.size 5 2022. 1. 12.
[파이썬 판다스] 시리즈에서 각 원소가 특정 리스트의 어느 인덱스인지 확인하기 (get_indexer) 판다스를 불러오고 시리즈를 하나 정의합시다. import pandas as pd s1=pd.Series(['a','b','a','a','c','d','e','e']) >>> s1 0 a 1 b 2 a 3 a 4 c 5 d 6 e 7 e dtype: object 각 원소가 ['a','b','c','d','e'] 의 몇번째 인덱스인지 확인해봅시다. 이 리스트도 변수에 넣어줍니다. >>> for_idx=['a','b','c','d','e'] s1의 각 원소가 몇번째 인덱스인지 확인해봅시다. >>> pd.Index(for_idx).get_indexer(s1) array([0, 1, 0, 0, 2, 3, 4, 4], dtype=int64) 2022. 1. 10.
[파이썬 판다스] 시리즈에서 각 원소가 특정 리스트에 있는지 판단하기 판다스를 불러오고 시리즈를 하나 정의합시다. import pandas as pd s1=pd.Series(['a','b','a','a','c','d','e','e']) >>> s1 0 a 1 b 2 a 3 a 4 c 5 d 6 e 7 e dtype: object 각 원소가 ['a','b'] 에 들어있는지 판단해봅시다. isin 함수를 사용합니다. >>> s1.isin(['a','b']) 0 True 1 True 2 True 3 True 4 False 5 False 6 False 7 False dtype: bool 2022. 1. 10.
[파이썬 판다스] 시리즈에서 원소 별 개수 출력하기 (value_counts) 판다스를 불러오고 시리즈를 하나 정의합시다. import pandas as pd s1=pd.Series(['a','b','a','a','c','d','e','e']) >>> s1 0 a 1 b 2 a 3 a 4 c 5 d 6 e 7 e dtype: object 각 원소 별 개수를 출력해봅시다. value_counts 메소드를 사용합니다. >>> s1.value_counts() a 3 e 2 b 1 c 1 d 1 dtype: int64 많이 있는 것 순서대로 정렬된 것을 알 수 있습니다. 등장 순서대로 정렬하려면 sort=False 옵션을 입력하면 됩니다. >>> s1.value_counts(sort=False) a 3 b 1 c 1 d 1 e 2 dtype: int64 위 메소드는 판다스 함수 형태로도 .. 2022. 1. 10.
[파이썬 판다스] 시리즈에서 고유 값 추려내기 (unique) 판다스를 불러오고 시리즈를 하나 정의합시다. import pandas as pd s1=pd.Series(['a','b','a','a','c','d','e','e']) >>> s1 0 a 1 b 2 a 3 a 4 c 5 d 6 e 7 e dtype: object 고유 값을 추려 봅시다. unique 메소드를 사용합니다. >>> s1.unique() array(['a', 'b', 'c', 'd', 'e'], dtype=object) 2022. 1. 10.
[파이썬 판다스] 시리즈에서 중복 값 제거하기 (unique) 판다스를 불러오고 시리즈를 하나 정의합시다. import pandas as pd s1=pd.Series(['a','b','a','a','c','d','e','e']) >>> s1 0 a 1 b 2 a 3 a 4 c 5 d 6 e 7 e dtype: object 중복 값을 제거해봅시다. unique 메소드를 사용합니다. >>> s1.unique() array(['a', 'b', 'c', 'd', 'e'], dtype=object) 2022. 1. 10.
[파이썬 판다스] 시리즈에 사용되는 통계관련 함수 모음 (평균, 표준편차 등) 시리즈에 사용되는 통계관련 함수는 아래와 같습니다. 메소드 형태로 사용합니다. 시리즈 이름이 sr1이고 함수명이 aa라면 아래와 같이 사용합니다. sr1.aa() 함수는 아래와 같습니다. 1. 통계량 관련 메소드 설명 mean 평균 var 분산 std 표준편차 skew 왜도 kurt 첨도 median 중앙값 mad 중앙값 절대편차 describe 여러 통계량 한번에 출력 quantile 분위수 (0~1사이값 입력) 2. 개수, 합, 차, 곱, 변화율 관련 메소드 설명 count 개수 sum 합 cumsum 누적합 prod 곱 diff 앞 원소와의 차이 pct_change 앞 원소와의 변화율 3. 최대 최소 관련 메소드 설명 min 최솟값 max 최댓값 argmin 최솟값 인덱스 argmax 최댓값 인덱스.. 2022. 1. 4.
[파이썬 판다스] 시리즈 누적합 계산 판다스 패키지와 넘파이 패키지를 불러옵니다 import pandas as pd import numpy as np np.rand.rand 함수를 이용하여 0~1 사이 균등분포에서 배열을 생성합니다. 생성한 배열로 시리즈를 생성합니다. 행의 이름을 아래와 같이 입력합니다. >>> sr1=pd.Series(np.random.rand(5),index=['R1','R2','R3','R4','R5']) >>> sr1 R1 0.045323 R2 0.962080 R3 0.687952 R4 0.599187 R5 0.783972 dtype: float64 원소의 누적합을 구해봅시다. cumsum 메소드를 사용합니다. >>> sr1.cumsum() R1 0.045323 R2 1.007403 R3 1.695354 R4 2.2.. 2022. 1. 4.
[파이썬 판다스] 시리즈 원소의 최댓값이 들어있는 행 출력 판다스 패키지와 넘파이 패키지를 불러옵니다 import pandas as pd import numpy as np np.rand.rand 함수를 이용하여 0~1 사이 균등분포에서 배열을 생성합니다. 생성한 배열로 시리즈를 생성합니다. 행의 이름을 아래와 같이 입력합니다. import pandas as pd import numpy as np 원소의 최댓값이 들어있는 행을 출력해봅시다. idxmax 메소드를 사용합니다. >>> sr1.idxmax() 'R2' 2022. 1. 4.
[파이썬 판다스] 시리즈 원소의 평균 구하기 판다스 패키지와 넘파이 패키지를 불러옵니다 import pandas as pd import numpy as np np.rand.rand 함수를 이용하여 0~1 사이 균등분포에서 배열을 생성합니다. 생성한 배열로 시리즈를 생성합니다. 행의 이름을 아래와 같이 입력합니다. >>> sr1=pd.Series(np.random.rand(5),index=['R1','R1','R2','R3','R4']) >>> sr1 R1 0.150008 R1 0.285633 R2 0.960971 R3 0.810092 R4 0.846327 dtype: float64 원소의 평균을 구해봅시다. mean 메소드를 사용합니다. >>> sr1.mean() 0.6106061298356524 2022. 1. 4.
[파이썬 판다스] 시리즈 원소의 합 구하기 판다스 패키지와 넘파이 패키지를 불러옵니다 import pandas as pd import numpy as np np.rand.rand 함수를 이용하여 0~1 사이 균등분포에서 배열을 생성합니다. 생성한 배열로 시리즈를 생성합니다. 행의 이름을 아래와 같이 입력합니다. >>> sr1=pd.Series(np.random.rand(5),index=['R1','R1','R2','R3','R4']) >>> sr1 R1 0.150008 R1 0.285633 R2 0.960971 R3 0.810092 R4 0.846327 dtype: float64 원소의 합을 구해봅시다. sum 메소드를 사용합니다. >>> sr1.sum() 3.053030649178262 2022. 1. 4.
[파이썬 판다스] 시리즈 행 이름 중복 여부 확인 판다스 패키지와 넘파이 패키지를 불러옵니다 import pandas as pd import numpy as np np.rand.rand 함수를 이용하여 0~1 사이 균등분포에서 배열을 생성합니다. 생성한 배열로 시리즈를 생성합다. 행의 이름을 아래와 같이 입력합니다. >>> sr1=pd.Series(np.random.rand(5),index=['R1','R1','R2','R3','R4']) >>> sr1 R1 0.450499 R1 0.276244 R2 0.263212 R3 0.799937 R4 0.255633 dtype: float64 행 이름에 중복이 있는지 알아봅시다. index.is_unique 메소드를 사용합니다. False가 나오면 중복이 있는 것입니다. >>> sr1.index.is_uniqu.. 2022. 1. 4.
[파이썬 판다스] 시리즈 원소의 순위(rank) 출력하기 판다스 패키지와 넘파이 패키지를 불러옵니다 import pandas as pd import numpy as np np.rand.rand 함수를 이용하여 0~1 사이 균등분포에서 배열을 생성합니다. 생성한 배열로 시리즈를 생성합니다. sr1=pd.Series(np.random.rand(5)) >>> sr1 0 0.230081 1 0.676289 2 0.867322 3 0.680876 4 0.098489 dtype: float64 시리즈 원소의 순위(rank) 출력해봅시다. rank 메소드를 사용합니다. >>> sr1.rank() 0 2.0 1 3.0 2 5.0 3 4.0 4 1.0 동률(tie) 처리 옵션은 아래와 같습니다. method=' ' 형태로 입력합니다. 디폴트는 average입니다. 예를들어 공.. 2022. 1. 4.
[파이썬 판다스] 시리즈를 값 크기 순으로 정렬하기 판다스 패키지와 넘파이 패키지를 불러옵니다 import pandas as pd import numpy as np np.rand.rand 함수를 이용하여 0~1 사이 균등분포에서 배열을 생성합니다. 생성한 배열로 시리즈를 생성합니다. >>> sr1=pd.Series(np.random.rand(5)) >>> sr1 0 0.263950 1 0.830847 2 0.731628 3 0.424860 4 0.427524 dtype: float64 값의 크기 순으로 정렬해봅시다. sort_values 메소드를 이용합니다. >>> sr1.sort_values() 0 0.263950 3 0.424860 4 0.427524 2 0.731628 1 0.830847 dtype: float64 역순 정렬은 ascending=Fa.. 2022. 1. 4.
[파이썬 판다스] 시리즈의 각 원소에 원하는 함수 적용하기 (map메소드) 판다스 패키지와 넘파이 패키지를 불러옵니다 import pandas as pd import numpy as np np.rand.rand 함수를 이용하여 0~1 사이 균등분포에서 배열을 생성합니다. 생성한 배열로 시리즈를 생성합니다. >>> sr1=pd.Series(np.random.rand(5)) >>> sr1 0 0.680026 1 0.440253 2 0.852054 3 0.149469 4 0.541459 dtype: float64 각 원소에 루트를 씌워보겠습니다. map 메소드를 사용합니다. 물론 np.sqrt 함수를 바로 적용해도 되지만 map 사용법을 익혀야 하므로 아래와 같이 적용하겠습니다. >>> sr1.map(np.sqrt) 0 0.824637 1 0.663515 2 0.923068 3 0... 2022. 1. 3.
[파이썬 판다스] 시리즈의 사칙연산 판다스를 불러옵니다. import pandas as pd 시리즈를 두개 정의합니다. >>> s1=pd.Series([1,2,3,4,5],index=['a','b','c','f','g']) >>> s1 a 1 b 2 c 3 f 4 g 5 dtype: int64 >>> s2=pd.Series([10,20,30,40,50],index=['a','c','d','e','g']) >>> s2 a 10 c 20 d 30 e 40 g 50 dtype: int64 일부러 인덱스를 약간 다르게 정의했습니다. 두 시리즈를 합해봅시다. >>> s1+s2 a 11.0 b NaN c 23.0 d NaN e NaN f NaN g 55.0 dtype: float64 두 시리즈 모두에 있는 인덱스에서만 연산이 수행됩니다. 같은 인덱스.. 2021. 12. 30.
[파이썬 판다스] 부등식을 이용한 시리즈 인덱싱 판다스 시리즈를 하나 정의합시다. >>> import pandas as pd >>> s1=pd.Series([1,2,3,4,5]) >>> s1 0 1 1 2 2 3 3 4 4 5 dtype: int64 2이상인 원소를 인덱싱 해봅시다. >>> s1[s1>=2] 1 2 2 3 3 4 4 5 dtype: int64 2 이상 4 이하인 원소를 인덱싱 해봅시다. 판다스에서는 and 연산자가 아니라 & 를 사용해야 합니다. >>> s1[(s1>=2) & (s1 2021. 12. 13.
반응형