- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2020-02-20T05:19:38+00:00","default:f-lab","f-lab")
#author("2020-02-21T05:15:22+00:00","default:f-lab","f-lab")
[[seminar-personal/chin2017]]
http://f-lab.mydns.jp/index.php?seminar-N-20200214
|~目次|
|#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個等を