ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python 데이터분석 기초 8 - pandas(산술연산)
    Python 데이터 분석 2022. 10. 31. 12:19

     

    print('산술 연산')
    s1 = pd.Series([1,2,3], index = ['a','b','c'])
    s2 = pd.Series([4,5,6,7], index = ['a','b','d','c'])
    print(s1)
    print(s2)
    print(s1 + s2)    # -, *, / 다 사용 가능, index가 같은 index끼리 산술됨
    print(s1.add(s2)) # sub, mul, div
    
    print()
    df1 = pd.DataFrame(np.arange(9).reshape(3,3), columns = list('kbs'), index = ['서울', '대전', '부산'])
    df2 = pd.DataFrame(np.arange(12).reshape(4,3), columns = list('kbs'), index = ['서울', '대전', '제주', '목포'])
    print(df1)
    print(df2)
    print()
    print(df1 + df2) # -, *, / 다 사용 가능, index가 같은 index끼리 산술됨
    print(df1.add(df2))  # 조건을 달 수 있음
    print(df1.add(df2, fill_value = 0))  # NaN는 특정값으로 채울 수 있다.
    
    print()
    seri = df1.iloc[0]
    print(seri)
    print(df1 - seri) # Broadcasting 연산
    
    print()
    # 기술적 통계와 관련된 메소드(함수)
    df = pd.DataFrame([[1.4, np.nan], [7, -4.5],[np.NaN, None], [0.5, -1]], columns=['one','two'])
    print(df)
    print()
    print(df.drop(1))  # 1행 삭제
    print(df.isnull()) # null 값이 있는 지 true, false 로 반환
    print(df.notnull())# null 값이 없는 지 true, false 로 반환
    print()
    print(df.dropna()) # na가 있는 행은 모두 지운다.
    print(df.dropna(how='any')) # 같은 방법, nan이 하나만 있어도 제외
    print(df.dropna(how='all')) # nan이 둘 다 있으면 제외
    print(df.dropna(axis='rows'))
    print()
    print(df.fillna(0)) # 결측값은 0 또는 평균 등의 값으로 대체 가능하다.
    print(df.fillna(method='ffill')) # 이전 값으로 결측값을 채운다.
    print(df.fillna(method='bfill')) # 다음 값으로 결측값을 채운다.
    print(df.dropna(subset=['one'])) # 특정열에 NaN이 있는 행 삭제
    
    print('----')
    print(df)
    print(df.sum())
    print(df.sum(axis=0)) # 열의 합
    print()
    print(df.sum(axis=1)) # 행의 합
    print()
    print(df.mean(axis=1)) # 행의 평균
    print(df.mean(axis=1, skipna=True))  # 위랑 같음
    print(df.mean(axis=1, skipna=False)) # 행의 평균 : NaN은 연산에서 제외한다.
    print(df.mean(axis=0, skipna=False)) # 열의 평균 : NaN은 연산에서 제외한다.
    print(df.mean(axis=0, skipna=True))  # 열의 평균
    print()
    print(df.describe()) # 요약 통계량을 구해준다.
    print(df.info())     # 구조 호출
    
    <console>
    산술 연산
    a    1
    b    2
    c    3
    dtype: int64
    a    4
    b    5
    d    6
    c    7
    dtype: int64
    a     5.0
    b     7.0
    c    10.0
    d     NaN
    dtype: float64
    a     5.0
    b     7.0
    c    10.0
    d     NaN
    dtype: float64
    
        k  b  s
    서울  0  1  2
    대전  3  4  5
    부산  6  7  8
        k   b   s
    서울  0   1   2
    대전  3   4   5
    제주  6   7   8
    목포  9  10  11
    
          k    b     s
    대전  6.0  8.0  10.0
    목포  NaN  NaN   NaN
    부산  NaN  NaN   NaN
    서울  0.0  2.0   4.0
    제주  NaN  NaN   NaN
          k    b     s
    대전  6.0  8.0  10.0
    목포  NaN  NaN   NaN
    부산  NaN  NaN   NaN
    서울  0.0  2.0   4.0
    제주  NaN  NaN   NaN
          k     b     s
    대전  6.0   8.0  10.0
    목포  9.0  10.0  11.0
    부산  6.0   7.0   8.0
    서울  0.0   2.0   4.0
    제주  6.0   7.0   8.0
    
    k    0
    b    1
    s    2
    Name: 서울, dtype: int32
        k  b  s
    서울  0  0  0
    대전  3  3  3
    부산  6  6  6
    
       one  two
    0  1.4  NaN
    1  7.0 -4.5
    2  NaN  NaN
    3  0.5 -1.0
    
       one  two
    0  1.4  NaN
    2  NaN  NaN
    3  0.5 -1.0
         one    two
    0  False   True
    1  False  False
    2   True   True
    3  False  False
         one    two
    0   True  False
    1   True   True
    2  False  False
    3   True   True
    
       one  two
    1  7.0 -4.5
    3  0.5 -1.0
       one  two
    1  7.0 -4.5
    3  0.5 -1.0
       one  two
    0  1.4  NaN
    1  7.0 -4.5
    3  0.5 -1.0
       one  two
    1  7.0 -4.5
    3  0.5 -1.0
    
       one  two
    0  1.4  0.0
    1  7.0 -4.5
    2  0.0  0.0
    3  0.5 -1.0
       one  two
    0  1.4  NaN
    1  7.0 -4.5
    2  7.0 -4.5
    3  0.5 -1.0
       one  two
    0  1.4 -4.5
    1  7.0 -4.5
    2  0.5 -1.0
    3  0.5 -1.0
       one  two
    0  1.4  NaN
    1  7.0 -4.5
    3  0.5 -1.0
    ----
       one  two
    0  1.4  NaN
    1  7.0 -4.5
    2  NaN  NaN
    3  0.5 -1.0
    one    8.9
    two   -5.5
    dtype: float64
    one    8.9
    two   -5.5
    dtype: float64
    
    0    1.4
    1    2.5
    2    0.0
    3   -0.5
    dtype: float64
    
    0    1.40
    1    1.25
    2     NaN
    3   -0.25
    dtype: float64
    0    1.40
    1    1.25
    2     NaN
    3   -0.25
    dtype: float64
    0     NaN
    1    1.25
    2     NaN
    3   -0.25
    dtype: float64
    one   NaN
    two   NaN
    dtype: float64
    one    2.966667
    two   -2.750000
    dtype: float64
    
                one       two
    count  3.000000  2.000000
    mean   2.966667 -2.750000
    std    3.521837  2.474874
    min    0.500000 -4.500000
    25%    0.950000 -3.625000
    50%    1.400000 -2.750000
    75%    4.200000 -1.875000
    max    7.000000 -1.000000
    <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 4 entries, 0 to 3
    Data columns (total 2 columns):
     #   Column  Non-Null Count  Dtype  
    ---  ------  --------------  -----  
     0   one     3 non-null      float64
     1   two     2 non-null      float64
    dtypes: float64(2)
    memory usage: 192.0 bytes
    None

     

     

    댓글

Designed by Tistory.