Python 実践 データ加工/可視化 100本ノック に挑戦 ノック7

ノック7:マスタを読み込んで項目を横に繋げよう

 

1.フォルダ情報の確認

import  os

listdir=os.listdir('data')
print(listdir)

 

実行結果

['22_shizuoka_all_20210331.csv', 'diff_20210401.csv', 'diff_20210405.csv', 'diff_20210406.csv', 'diff_20210407.csv', 'diff_20210408.csv', 'diff_20210409.csv', 
'mst_closeCause.csv', 'mst_column_name.txt', 'mst_corp_kind.csv', 'mst_correct_kbn.csv', 'mst_hihyoji.csv', 'mst_latest.csv', 'mst_process_kbn.csv']

 

2.mst_process_kbn.csvファイルの読み込み

import  os
import pandas as pd

listdir=os.listdir('data')

mst_process_kbn=pd.read_csv('data/mst_process_kbn.csv',dtype=object)
print(mst_process_kbn)

 

実行結果

  process process_kbn_name
0      01               新規
1      11        商号又は名称の変更
2      12         国内所在地の変更
3      13         国外所在地の変更
4      21         登記記録の閉鎖等
5      22         登記記録の復活等
6      71             吸収合併
7      72           吸収合併無効
8      81         商号の登記の抹消
9      99               削除

 

3.pandasのmerge()を使用してmst_process_kbnをdataにマージします。

import  os
import pandas as pd

listdir=os.listdir('data')

mst_process_kbn=pd.read_csv('data/mst_process_kbn.csv',dtype=object)

mst=pd.read_csv('data/mst_column_name.txt',encoding='shift-jis',sep='\t')
columns=mst.column_name_en.values
data = pd.read_csv('data/22_shizuoka_all_20210331.csv',
                    encoding='shift-jis',header=None,dtype=object)
data.columns=columns  

data=data.merge(mst_process_kbn,on='process',how='left')

print(len(data.columns))
print(data.head(3))

 

実行結果

31
  sequenceNumber corporateNumber process correct  ... enAddressOutside       furigana hihyoji process_kbn_name
0              1   1000013040008      01       1  ...              NaN  シズオカカテイサイバンショ       0               新規
1              2   1000013050072      01       1  ...              NaN   シミズカンイサイバンショ       0               新規
2              3   1000013050080      01       1  ...              NaN  ハママツカンイサイバンショ       0               新規

 

一番右側にprocess_kbn_nameが追加されています。

how=leftの場合

dataにあってマスタにない:欠損値NaNが設定される

dataにあってマスタにもある:名称が設定される

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

/* -----codeの行番号----- */