データフレーム解析関数


集約関数


count

  • countメソッドは、データ数を決定するために使用することができる
    (Default:NaN値を除く)
  • data = {
    'korean': [50, 60, 70],
    'math': [10, np.nan, 40]
    }
    df = pd.DataFrame(data, index = ['a','b','c'])
    df.count(axis = 0) # 열 기준
    df.count(axis = 1) # 행 기준

    データ型は整数型であることに注意してください.

    max, min

  • max、minメソッドを使用して最大値と最小値を決定
    (Default:列ベース、NAN値を除く)
  • data = {
    'korean': [50, 60, 70],
    'math': [10, np.nan, 40]
    }
    df = pd.DataFrame(data, index = ['a','b','c'])
    df.max() # 최댓값
    df.min() # 최솟값

    データ型が間違っていることに注意してください.

    sum, mean

  • sum,平均メソッドを用いて合計と平均計算を行う
    (Default:列ベース、NAN値を除く)
  • data = {
    'korean': [50, 60, 70],
    'math': [10, np.nan, 40]
    }
    df = pd.DataFrame(data, index = ['a','b','c'])
    df.sum() # 합계
    df.mean() # 평균

    データ型エラー!
  • axis,skipna因子を用いた計算と平均値
    (NAN値を含む行条件)
  • axis = 1行別計算
  • skipna = Truena値
  • は無視されます.
  • skipna = Falsena値を含む
  • data = {
    'korean': [50, 60, 70],
    'math': [10, np.nan, 40]
    }
    df = pd.DataFrame(data, index = ['a','b','c'])
    df.sum(axis = 1) # 합계
    df.mean(axis = 1, skipna = False) # 평균
  • NAN値置換数字
  • NaN値が存在する列の平均値置換NaN値
  • …
    B_avg = df['math'].mean()
    print(B_avg) # 25.0
    # NaN값 대체
    df['math'] = df['math'].fillna(B_avg)
    # 평균
    df.mean(axis = 1, skipna = False)

    このときのデータ型もfloat!実刑.

    [練習2]集約関数


    質問する


    データフレームdfは、koreanmath列を含む.
    dfデータフレームで関数を使用して次のタスクを実行します.
  • 各カラムのデータ量をcol_num変数に格納して出力しようとします.
  • 各行のデータ数をrow_num変数に格納して出力しようとします.
  • 各列の最低価格を求め、col_max変数に保存して出力します.
  • 各カラムの最適値を求め、col_min変数に保存して出力します.
  • 各列の合計を求め、col_sum変数に保存して出力します.
  • math最終値を列の最大値に置き換え、dfを出力します.
  • 各列の平均値を求め、col_avg変数に格納して出力する.
  • mport numpy as np
    import pandas as pd
    
    data = {
        'korean' : [50, 60, 70],
        'math' : [10, np.nan, 40]
    }
    df = pd.DataFrame(data, index = ['a','b','c'])
    print(df, "\n")

    code

    # 각 컬럼별 데이터 개수
    col_num = df.count(axis = 0)
    print(col_num, "\n")
    
    # 각 행별 데이터 개수
    row_num = df.count(axis = 1)
    print(row_num, "\n")
    
    # 각 컬럼별 최댓값
    col_max = df.max()
    print(col_max, "\n")
    
    # 각 컬럼별 최솟값
    col_min = df.min()
    print(col_min, "\n")
    
    # 각 컬럼별 합계
    col_sum = df.sum()
    print(col_sum, "\n")
    
    # 컬럼의 최솟값으로 NaN값 대체
    math_min = df['math'].min()
    df['math'] = df['math'].fillna(math_min)
    print(df, "\n")
    
    # 각 컬럼별 평균
    col_avg = df.mean()
    print(col_avg, "\n")

    実行結果

       korean  math
    a      50  10.0
    b      60   NaN
    c      70  40.0 
    
    korean    3
    math      2
    dtype: int64 
    
    a    2
    b    1
    c    2
    dtype: int64 
    
    korean    70.0
    math      40.0
    dtype: float64 
    
    korean    50.0
    math      10.0
    dtype: float64 
    
    korean    180.0
    math       50.0
    dtype: float64 
    
       korean  math
    a      50  10.0
    b      60  10.0
    c      70  40.0