タップできるもくじ
【kaggle入門】pythonでcsvファイルを結合する方法
kaggleやSIGNATEをやっていると、trainデータが複数のcsvファイルに分散されていて、それを結合する必要が出てきます。
容量の小さいデータであればExcelのvlookupやAccessを使用すればすぐにできますが、100MBを超えるような膨大なデータですと、Pythonで結合した方が簡単だったりします。
当記事では、誰でも簡単にcsvを連結できるように解説をしています。
記事を書いた人
元営業という経歴を活かしながら、金融・製造・流通業のお客様を中心にAI活用コンサルや定着支援・人材育成の支援をしたり、講演や執筆活動など幅広く活動しています。
ヤエリ(@yaesuri_man)
普段のお客様との会話の中でよく話題に出るこのテーマ。
技術畑ではないものの、長らく現場の実務に携わってきた視点は喜ばれることが多いです。
【kaggle入門】Pythonでcsvファイルを結合する方法 サンプルデータ
今回結合したいのは以下の2ファイルです。
一行目が列名になっている、一般的なtrainデータです。
「商品コード」列の値をキーとして、uriage.csvとshohin.csvを結合していきます。
※結合の方法は、「左結合」「右結合」「内部結合」「外部結合」など色々ありますが、ここではシンプルに
- uriage.csvを親ファイルとして、shohin.csvを結合する
とします。
shohin.csvを親ファイルにしてしまうと、情報が失われてしまいますからね。
最終的に作成したいのは、uriage.csvを基準とした以下のファイル「uriage_shohin」です。
【kaggle入門】Pythonでcsvファイルを結合する方法 Pythonの記述
それでは早速コードを書いて行きます。
お約束
まずはpandasを「pd」として読み込みます。
import pandas as pd
csvファイルの読み込み
次にcsvファイルを読み込みます。
csvファイルは、ディレクトリの適当な所に保管して下さい。
uriage = pd.read_csv('uriage.csv', encoding="shift-jis") shohin = pd.read_csv('shohin.csv', encoding="shift-jis")
「encording="shift_jis"」は、日本語部分(商品名の「りんご」「梨」)などを正常に読み込むために必要となります。
(これが無いとエラーになります)
読み込んだファイルを確認してみると、自動的にindexが振られ、正常に読み込まれていることが確認できます。
uriage
shohin
csvファイル同士の結合
いよいよcsvファイル同士を結合します。
uriage_shohin = pd.merge(uriage, shohin, how='left', left_on='商品コード', right_on='商品コード')
「uriage」「shohin」それぞれを、「商品コード」という列名をキーに結合し、「uriage_shohin」という新たなデータフレームを作る形です。
「how='left'」は、左側(ここでは「uriage」)を親として、shohinをくっつける意味合いです。
左側、右側それぞれ同じ列名の「商品コード」を記載しています。
※列名が同じ場合はもっと簡素な記載方法もありますが、ここでは最も汎用的な方法を記載しています。
csvファイルの書き出し
最後に、作成した結合ファイル「uriage_shohin」を、csvファイルとして書き出します。
uriage_shohin.to_csv('uriage_shohin.csv')
無事csvファイルが書き出されました。
この際、同じフォルダに同じファイル名のcsvがあると、エラーになりますのでご注意ください(初心者あるあるです)。
【kaggle入門】Pythonでcsvファイルを結合する方法まとめ
今回のコードをまとめると以下です。
#お約束 import pandas as pd #csvファイルの読み込み uriage = pd.read_csv('uriage.csv', encoding="shift-jis") shohin = pd.read_csv('shohin.csv', encoding="shift-jis") #csvファイル同士の結合 uriage_shohin = pd.merge(uriage, shohin, how='left', left_on='商品コード', right_on='商品コード') #csvファイルの書き出し uriage_shohin.to_csv('uriage_shohin.csv')
以上でファイル結合編は終わりとなります。
今後はkaggleに最低限必要な処理などを連載していきたいと思います。
その他、pythonやkaggle、AI・機械学習といった記事のまとめはこちらです。
-
プログラミング関連の記事まとめ
続きを見る
ここからは、実際に私が購入し、おすすめできると思った本やオンラインスクールを紹介します。
機械学習のための「前処理」入門
まずはこちら。「機械学習のための『前処理』入門」です。
- これから機械学習を始めてみたい
- kaggleやSIGNATEにチャレンジしてみたい
という方には最適な本で、個人的には一番のおすすめです。
データモデルの精度向上には特徴量エンジニアリングが不可欠、というよりこれが全てと言っても過言ではありません。
各種環境準備の方法やコーディングの詳細に至るまで、誰にでも分かりやすく書かれています。
この一冊さえあれば、とりあえずkaggleにトライすることができます。
Udemy「みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習」
ベネッセが主催する、プログラミング未経験者を対象にしたコース。
数学や統計的な知識はそこそこに、文字通り人工知能と機械学習をゼロから学習できます。
受講生2万人以上、4千人以上の評価者から、5段階中4.0の評価を得ている、万人におすすめできる優良講座。
定価15,000円と高価ですが、90%OFFといったキャンペーンを頻繁に行っていますので、それを狙うのがおすすめ。
人工知能は人間を超えるか
pythonのコーディングからは離れますが、もしこの本を読んでいない人がいたら必ず一度は目を通しておいた方が良いです。
この界隈では有名な、東大の松尾豊先生の著書「人工知能は人間を超えるか」。
いわゆるAI・人工知能、機械学習といった昨今のキーワードを中心に、過去の歴史からここ最近の動き、今後の動向に至るまでを、平易な表現で丁寧に解説されています。
また日本ディープラーニング協会が開催する「ディープラーニング ジェネラリスト検定(通称:G検定)」の推薦図書の一つでもあります。
全てのビジネスマンにおすすめできる一冊。中古でもkindleでも構いませんので、これだけは目を通しておいた方が良いです。