#author("2020-02-21T05:05:21+00:00","default:f-lab","f-lab") #author("2020-02-21T05:15:22+00:00","default:f-lab","f-lab") [[seminar-personal/chin2017]] |~目次| |#contents| &br; *おさらい [#p71808b9] -[[前回ゼミ>http://f-lab.mydns.jp/index.php?seminar-N-20200214]] クラスタリングの調査 要素数が少ないクラスタに属している項目名は、おかしなCSVファイルから抽出されたもの である可能性が高い。 項目名が縦に並んでいて、横向きに読むような形の表 人間が読むように作られた表をそのままCSVにしたもの 2行にわたって項目名がある 変な項目名のCSVファイルへのパスを抽出する。 それらのCSVファイルを一か所に集めて確認する。 *copy ファイルをコピー [#u6faa971] -[[コピー方法>https://pg-chain.com/python-file-copy]] - import shutil shutil.copy(コピー元ファイルのパス,コピー先ファイルのパス) -上記を使用し、ソースコードを&ref(extract_filelist.txt); import pandas as pd import shutil import os FNAME="items_name_all_vec_150_191212.csv" print(" CSV of item data reading...") df=pd.read_csv(FNAME,sep=",",encoding="utf-8-sig",header =None) #項目データ 項目名ペアを読み込み print(df) len_df=len(df) dict ={} #回数を統計 dict ={} for m in range(df.shape[0]):#行数クラスタリングの分布 name = df.iat[m,0]#項目名 label=df.iat[m,51]#クラスタのラベル if label in dict.keys(): dict[label].append(name) else: dict[label]=[name] print(dict) print(len(dict)) extract_dict ={} for i in range(1,151): if len(dict[i]) <= 5: #print(i,dict[i]) for item in dict[i]: print(item) extract_dict[item]=i fname="pre2_csv_items_all_20200220.csv" df=pd.read_csv(fname,sep=",",header=0) #項目データ 項目名ペアを読み込み list_tmp=[] for i in range(len(df)): if df.iat[i,1] in extract_dict.keys():#全データ(dataset)の分布 f_name = df.iat[i,2] if (f_name not in list_tmp and os.path.exists(f_name)): print(f_name) list_tmp.append(f_name) # 第二引数がディレクトリの場合、同じファイル名でコピーされます shutil.copy(df.iat[i,2], './tmp') -抽出したリスト &ref(tmp抽出したリスト.txt); -抽出したcsvファイルのパス:\\10.200.11.9\home\N\chin\20200221\tmp -上記のような方法で中身を確認し、除外する作業を行う予定です --クラスタの数では5個以下のみを処理 --10個、15個等を