ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python Pandas Series 배열
    Python 2022. 8. 3. 23:59
    반응형

    Pandas

    pandas 모듈 사용하기

    import pandas as pd
    # 주로 pandas를 줄여서 pd로 사용한다.

     

     

    Series 생성하기

    # Series생성
    s1 = pd.Series([1,2,4,5,-6])
    print(s1)
    
    0    1
    1    2
    2    4
    3    5
    4   -6
    dtype: int64

     

    원하는 인덱스로 지정하여 Series생성

    s2 = pd.Series([4,5,-6,1], index=['d','r','q','v'])
    print(s2)
    
    d    4
    r    5
    q   -6
    v    1
    dtype: int64

    Series 값 확인하기

    print(s2.values)
    
    [ 4  5 -6  1]

    Series index 확인하기

    print(s2.index)
    
    Index(['d', 'r', 'q', 'v'], dtype='object')

    Series type 확인하기

    print(s2.dtype)
    
    int64

    인구 Series 생성 / Series name / index name

    s2015 = pd.Series([9904312,3448737,2890451,2466052],index=['서울', '부산', '인천', '대구'])
    s2015.name = '인구'
    s2015.index.name='도시'
    print(s2015)
    
    
    도시
    서울    9904312
    부산    3448737
    인천    2890451
    대구    2466052
    Name: 인구, dtype: int64

    Dictionary를 이용하여 Series생성

    dic1 = {"서울": 9631482, "부산":3393191, "인천":2632035, "대구":1490158}
    s2010 = pd.Series(dic1)
    s2010.name='인구'
    s2010.index.name='도시'
    print(s2010)
    
    
    도시
    서울    9631482
    부산    3393191
    인천    2632035
    대구    1490158
    Name: 인구, dtype: int64

    Series연산

    print(s2010/1000000)
    # 각 요소별로 연산이 가능하다. 결과값 bool
    print(s2010>=3000000)
    
    
    도시
    서울    9.631482
    부산    3.393191
    인천    2.632035
    대구    1.490158
    Name: 인구, dtype: float64
    도시
    서울     True
    부산     True
    인천    False
    대구    False
    Name: 인구, dtype: bool

    Series 인덱싱

    print(s2010['인천'])
    print(s2010[0])
    
    # Series 형태 유지하면서 인덱싱
    print(s2010[[2]])
    print(s2010[['서울']])
    
    # 인덱스나, 인덱스 명으로 티입은 통일 시켜야한다.
    print(s2010[['서울','인천']])
    
    
    2632035
    9631482
    도시
    인천    2632035
    Name: 인구, dtype: int64
    도시
    서울    9631482
    Name: 인구, dtype: int64
    도시
    서울    9631482
    인천    2632035
    Name: 인구, dtype: int64

    Series 슬라이싱

    print(s2010[1:3])
    
    # 라벨을 사용한 슬라이싱
    print(s2010['부산':'인천'])
    
    
    도시
    부산    3393191
    인천    2632035
    Name: 인구, dtype: int64
    도시
    부산    3393191
    인천    2632035
    Name: 인구, dtype: int64

    boolean 색인

    print(s2015[s2015>2500000])
    
    print(s2015[(s2015>=2500000) & (s2015<=5000000)])
    
    
    도시
    서울    9904312
    부산    3448737
    인천    2890451
    Name: 인구, dtype: int64
    도시
    부산    3448737
    인천    2890451
    Name: 인구, dtype: int64

    null값 확인

    r = s2015-s2010
    print(r[r.notnull()])
    print('===')
    print(r[r.isnull()])
    
    
    도시
    서울    272830
    부산     55546
    인천    258416
    대구    975894
    Name: 인구, dtype: int64
    ===
    Series([], Name: 인구, dtype: int64)

    데이터 수정, 추가, 삭제

    r['대구'] = 10 # 수정
    r['광주'] = 1435378 # 추가
    del r['부산']
    print(r)
    
    
    도시
    서울     272830
    인천     258416
    대구         10
    광주    1435378
    Name: 인구, dtype: int64
    반응형

    댓글

Designed by Tistory.