[학습노트06] 세로 데이터를 BI 도구로 변환하기
이번 기사 제작자의 머신러닝과 필기를 위해 제작된 기사입니다.
만약 잘못이 있다면 평론에서 지적해 주십시오.
더 좋은 방법이 있다면 메시지를 남겨주세요.
잘 부탁드립니다.
이번 목적
BI 도구를 사용하면 수직 데이터 처리가 더욱 용이합니다.
그 전환 방법을 기록하다
참고 자료
파이썬의 새로운 데이터 분석 교과서 [사전학]
기계 학습 알고리즘의 구조 기계 학습 도감 [추정신도]
호출 라이브러리
#ライブラリのインポート
import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
%matplotlib inline
import random
random.seed(0)
import copy
# データ可視化のライブラリ
import seaborn as sns
#最大表示列数の指定(ここでは100列を指定)
pd.set_option('display.max_columns',100)
# floatの表示方法を、小数点以下2桁で設定する処理
pd.options.display.float_format = '{:.2f}'.format
데이터 준비 및 확인#データの読み込み
# data → 呼び出すデータのファイル名
# train_data.csv → 読み込むファイル名
data = pd.read_csv("data/train_data.csv")
#データの確認
data.head()
#データ数確認
data.shape
#データ情報の要約確認
data.info()
#データ統計要約確認
data.describe()
부족한 값을 확인하고 삭제하는 방법참고 자료
#データの欠損値を確認したい場合
df.isnull().sum()
#列の値が全て欠損値の場合削除する
df = df.dropna(how="all",axis = 1)
#XXの列に欠損値がある場合、その行を削除する
df = df.dropna(subset = ["XX"])
연수별로 나누다#勤続年数の部分を取り出し、リストに変換する
X = "勤続年数"
rows = []
for i in df[X]:
rows.append(i)
#年数ごとの区分を分ける
#
#勤続年数の区分を作成する
#1年未満 (i <1の場合、"1年未満"と表示)
#1年以上〜3年未満(i<3の場合、"1年以上~3年未満"と表示)
#3年以上〜5年未満(i<5の場合、"3年以上~5年未満"と表示)
#5年以上〜10年未満(i<10の場合、"5年以上~10年未満"と表示)
#10年以上(else、"10年以上"と表示)
#空のリストを作成
years = []
#リストの数値によって、区分を入力する
for i in rows:
if i < 1:
years.append("1年未満")
elif i <3:
years.append("1年以上~3年未満")
elif i < 5:
years.append("3年以上~5年未満")
elif i <10:
years.append("5年以上~10年未満")
else:
years.append("10年以上")
#"年数区分"にリストの値を挿入していく
df["年数区分"] = years
#データセットの確認をする。
df.head()
세로 데이터로 변환참고 자료
# 縦持ちにデータ変換
#左から6列目までのデータをIDとする
id_vars = list(df.columns[:7])
#左から7列目以降のデータを値とする
value_vars = list(df.columns[8:])
#データを縦持ちにする
df = df.melt(id_vars=id_vars,value_vars=value_vars,)
#データを確認する
df.head()
열 이름을 변경할 때#"variable"を"項目"にカラム名を変更する
df = df.rename(columns = {"variable":"項目"})
관련 데이터 추출#製品リストの作成
#Semi ⇨ 製品名の入った表 としている
df_list = Semi
rows = df_list["製品リスト"]
#表の中に入っている値を全て取り出す、区切りは"/"で行う
all_ele_list = "/".join(rows)
all_ele_list = all_ele_list.split("/")
unique_ele_list = list(set(all_ele_list))
target_list= sorted(unique_ele_list)
#条件として当てはめるリスト作成
#target_list
#読み込み条件を当てはめる
df_Semi= df_after.query("商品リスト in @target_list")
#表として出力する
df_Semi.head()
Excel로 데이터 내보내기
# "加工後データ"というエクセルファイルを出力する
df_after.to_excel("加工後データ.xlsx", index=False, encoding='cp932')
#"加工後データ"というCSVファイルを出力する
df.to_csv('加工後データ.csv')
Reference
이 문제에 관하여([학습노트06] 세로 데이터를 BI 도구로 변환하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/YH_BK/items/adab33c7fecc9a21f674텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)