構造化データ分析/データ可視化


1. Pandas


  • Numpyベースの構造化データ(x単位)を処理するためのPythonライブラリ

  • 主な構成
  • シリーズ-行と列を表す単位(1次元)、Key値を持つList
  • DataFrameシリーズ(行)+シリーズ(列)を組み合わせた2 D(一般的なExcelに類似)
  • 常に
  • indexというキー値
  • を有する.
  • シリーズデータとDataFrameデータの指令が異なりますので、
  • にご注意ください.

  • プライマリコマンド
  • DataFrame形式でExcelファイルを読み込みます(pd.read_csvpd.read_sqlなどの拡張子を読み取ることができます)
    df = pd.read_excel('파일명.xlsx', encoding='utf-8-sig')

  • インデックスを個別のカラム(0、1、2...n)で置換
    df.set_index('열 이름')

  • DataFrameの詳細について簡単に説明します.
    df.head() # 전체 중 일부를 확인 head() <-> tail(), default=5
    df.describe() # DataFrame의 기술통계량(평균, 표준편차, 분위 ...)
    df.info() # DataFrame의 열 정보 (Dtype, Null Count ...)

  • シリアルデータの抽出
    df.loc[3] # Series로 반환 (3 = index)
    df.loc[3:6, 'col1':'col_N'] # 3~6행의 col1 ~ col_N까지 반환(슬라이싱이지만 뒤까지 포함)
    df['col'] # col 데이터 반환 ( Series 형태 )
    df['col'].str.contains('data') # col 열에 data를 포함하는 열은 True 아니면 False 반환, data에 들어갈 수 있는 DataType str뿐이지만 '|'를 사용해 여러 조건을 한번에 찾아낼 수 있음(data = data1|data2|data3|...)
    df['col'].str.endswith('data') # col 열에 끝이 data를 포함하면 True 아니면 False 반환 <=> startswith
    df['col'].str.upper() # col 열에 str 데이터를 모두 대문자로 변환 <=> lower()

  • DataFrameからのデータの抽出
  • シリーズの抽出方式と似ていますが、大部分は括弧2号で包まれたパターンがあります.
  • df.loc[[3]] # DF로 반환, Series에 비해 DF의 시인성이 좋음, df.loc[[3,6,9]]처럼 여러개도 동시에 반환 가능
    df.loc[df['col'].str.contains('data'), :] # col행의 data를 포함한 모든 열을 DF 형태로 반환
    df.iloc[3:6, 0:3] # 3~5행 중 0~2번째 열까지만 DF로 반환 loc의 슬라이싱과 다르게 뒤를 포함하지 않는다.
    df[['col1', 'col2', 'col3']] # 전체 행의 col1 ~ col3 를 DF 형태로 반환

  • DataFrameデータハンドルの例
    df['new_col'] = df['col'].apply(lambda x : x + 1) # col열 data에 함수를 적용한 값을 새로 생성된 new_col행에 추가해준다.(apply + 함수가 for문에 비해 빠르다.)
    pivot_df = pd.pivot_table(df, index='col1', aggfunc=np.sum) # df 데이터를 col1 기준으로 모두 더해준 피벗테이블을 반환(엑셀의 피벗테이블과 같다, aggfunc = aggregation function(집계 함수))
    del df['col'] # col 열 삭제
    df.drop(['row']) # DF에서 row(행) 삭제
    df.drop(['col'], axis=1) # DF에서 col(열) 삭제 (axis는 축 방향으로 1이면 열, 0이면 행 삭제(default=0))
    list(df.columns) # DF의 Column명을 뽑아 list로 형변환 (df.index는 인덱스)
    df.rename(columns ={'col1':'열1', 'col2':'열2'}, inplace=True) #col1, col2 열의 이름을 열1, 열2로 변경(inplace는 원본 덮어쓰기 여부(default=False))
    df.sort_values(by='col1', ascending=False, inplace=True) # col1 안의 Data를 기준 정렬, ascending 오름차순 여부 (<=>sort_index(인덱스명 기준 정렬))
    new_df = df # 변수만 다르고 같은 메모리를 가르키기 때문에 원본에 영향을 주게 되는 복사 형태
    new_df = df.copy(deep=True) # default deep=True, 다른 메모리를 가지기 때문에 원본에 영향을 주지 않는 복사

  • 測定値処理方法
  • 列全体のベンチマーク値を計算し、
  • を挿入する.
  • ノットに基づく測定値前後のデータ平均挿入(表列データの場合)
  • .
  • 動作単位でグループ化し、
  • を私のグループ内のベンチマーク値として挿入します.
  • 予測モデルを作成し、
  • を挿入します.
  • ノット測定値が一定パーセント未満の場合、すべてのカラムデータ
  • を除外する.
  • その他の方法