ノック6:繰り返し処理で新しいデータを追加しよう
dataフォルダにどのようなファイルがあるか確認します。
実行結果
['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']
diff*.csvファイルのみをリスト表示するため、globライブラリを読み込みパターンマッチを行います。
実行結果
['data\\diff_20210401.csv', 'data\\diff_20210405.csv', 'data\\diff_20210406.csv', 'data\\diff_20210407.csv', 'data\\diff_20210408.csv', 'data\\diff_20210409.csv']
本の内容では、ここでファイルリストをソートしていますが、私の環境ではすでにリストはソートされた状態で表示されました。(Python 3.8.5)
リストの最初のファイルを読み込みます。
実行結果
6
0 1 2 3 4 5 6 7 ... 22 23 24 25 26 27 28 29
0 1 1010001016019 71 0 2021-04-01 2021-03-01 株式会社国際漢方研究所 NaN ... 2015-10-05 1 NaN NaN NaN NaN コクサイカンポウケンキュウショ
0
1 2 1010001092869 01 1 2021-04-01 2020-06-11 あさひ銀リテールファイナンス株式会社 NaN ... 2020-06-11 0 NaN NaN NaN NaN アサヒギンリテールファイ
ナンス 0
2 3 1010001092869 21 0 2021-04-01 2021-03-22 あさひ銀リテールファイナンス株式会社 NaN ... 2020-06-11 1 NaN NaN NaN NaN アサヒギンリテールファイ
ナンス 0
3 4 1010001128061 01 1 2021-04-01 2015-10-05 日本アイ・ビー・エム株式会社 NaN ... 2015-10-05 0 NaN NaN NaN NaN ニホンアイビーエム 0
4 5 1010001128061 71 1 2021-04-01 2017-10-02 日本アイ・ビー・エム株式会社 NaN ... 2015-10-05 1 NaN NaN NaN NaN ニホンアイビーエム 0
csvファイルのprefectureName項目が静岡県である場合のみを抽出します。データを絞り込むにはpanasのlocを使用します。
実行結果
43
sequenceNumber corporateNumber process correct updateDate changeDate ... enName enPrefectureName enCityName enAddressOutside furigana hihyoji
107 108 1080001015906 01 1 2021-04-01 2015-10-05 ... NaN NaN NaN NaN エムケイテック 0
108 109 1080001015906 12 1 2021-04-01 2021-03-30 ... NaN NaN NaN NaN エムケイテック 0
109 110 1080002015434 01 1 2021-04-01 2015-10-05 ... NaN NaN NaN NaN ハイナンディーシー 0
データの結合手順
1.テスト用の変数にdataの中身をコピー
2.既存の件数を確認
3.既存の件数が正しいことを確認
4.差分の件数を確認
5.追加後の件数を確認
6.追加後のデータの末尾3件を確認
実行結果
114613
True
43
114656
sequenceNumber corporateNumber process correct updateDate changeDate ... enName enPrefectureName enCityName enAddressOutside furigana hihyoji
2159 2160 9080401024929 01 0 2021-04-01 2021-04-01 ... NaN NaN NaN NaN リガーレ 0
2160 2161 9080402007726 01 1 2021-04-01 2015-10-05 ... NaN NaN NaN NaN マルシンショウテン 0
2161 2162 9080402021917 21 0 2021-04-01 2021-03-30 ... NaN NaN NaN NaN オカモトショウカイ 0
全てのdiff*.csvファイルから静岡県を抽出する記述は以下となります。
実行結果
sequenceNumber corporateNumber process correct updateDate
count 115020 115020 115020 115020 115020
unique 114613 114758 6 2 1322
top 3032 7080402010509 01 0 2015-11-13
freq 4 5 94398 80949 55969
実行結果より、uniqueでcorporateNumberの値と sequenceNumber の値が異なります。
データが重複しているためです。重複データを確認します。
実行結果
sequenceNumber corporateNumber process correct updateDate changeDate ... enName enPrefectureName enCityName enAddressOutside furigana hihyoji
107 108 1080001015906 01 1 2021-04-01 2015-10-05 ... NaN NaN NaN NaN エムケイテック
0
108 109 1080001015906 12 1 2021-04-01 2021-03-30 ... NaN NaN NaN NaN エムケイテック
0
109 110 1080002015434 01 1 2021-04-01 2015-10-05 ... NaN NaN NaN NaN ハイナンディーシー
0
110 111 1080105005588 12 0 2021-04-01 2021-03-25 ... NaN NaN NaN NaN レアーレワールド
0
113 114 1080403003401 21 0 2021-04-01 2021-03-02 ... NaN NaN NaN NaN ポップスターインポート
0
... ... ... ... ... ... ... ... ... ... ... ... ... ...
3193 3194 9080001004208 01 1 2021-04-09 2015-10-05 ... NaN NaN NaN NaN ハギリ 0
3194 3195 9080001021673 01 1 2021-04-09 2017-07-07 ... NaN NaN NaN NaN アクト 0
3196 3197 9080102008933 01 1 2021-04-09 2015-10-05 ... NaN NaN NaN NaN サクラキュウソウ
0
3197 3198 9080402002859 21 0 2021-04-09 2021-04-01 ... NaN NaN NaN NaN コウボウ 0
3198 3199 9080402015836 12 0 2021-04-09 2021-04-01 ... NaN NaN NaN NaN エコワークス 0
重複データを削除します。keepで新しいほうを残し、既存データのほうを削除します。
inplaceでdataの中身を直接書き換えます。
count 114758 114758 114758 114758 114758
unique 114388 114758 6 2 1322
top 3032 3080101004278 01 0 2015-11-13
freq 4 1 94176 80781 55849 ... 231