Pythonでメールフォームを大量集計する技の極意 コピペ&クリックでExcelデータに早変わり

拡大
縮小

必要な項目を抜き出してExcelファイルに貼り付ける

13~55行目のgetData関数は、[データ追加]ボタンをクリックすると呼び出され、必要な項目を抜き出してExcelファイルに追加します。

15行目のget メソッドでテキストボックスからテキストを取り出し、16行目のsplitlines メソッドで1行ずつ分割したリストに変換します。18行目から22行目のループは、空白行を取り除く処理です。最終的に変数msgListには、メールから空白行を取り除き、1行ずつ並べたものが入ります。

24行目から42行目では、繰り返し処理によって目的の項目を探し、変数dataDicの辞書(データをキーと値のペアで管理する構造)に追加する処理です。

例えば現在見ている行に「・お名前」が入っていれば、その1行下の内容をdataDic["・お名前"]に入れます。

繰り返し処理が終わると、次のように「キー」「値」が並んだ辞書ができ上がります。

44行目以降は、pandas(Pythonのライブラリ)を使って、Excelファイルにデータを追加します。

まずread_excel関数で「顧客リスト.xlsx」を読み込んで、変数dfに入れておきます。

⇒次に「値」だけを取り出したリストを作る

次に、先ほど辞書にデータを追加したdataDicの「値」だけを取り出したリストを作ります。このときに値の並び順をExcelファイル側の列と合わせておきます。

変数dfの列見出し(columns)と作成したリストを元にDataFrameオブジェクト(表形式のデータ)を作成して、変数df2に入れます。

51行目ではappendメソッドを使って、dfにdf2を連結します。このとき、列数が合っていないとエラーが発生するので注意してください。あとはto_excelメソッドでファイルを保存し、messagebox.showinfo関数で完了を伝えるメッセージボックスを表示します。

集計する項目を増やしたい場合

集計する項目を増やしたい場合、getData関数の中を2箇所ほど修正し、Excelファイルにも列を増やす必要があります。

例えば「・その他」という項目を追加したいとします。

まずはgetData関数のデータ取得ループに、「・その他」を見つけたら辞書に追加する処理を加えます。

さらに、Excelファイルに書き出す部分で、変数dataのリストに「・その他」の値を追加します。

次ページ最後に忘れてはいけないこと
関連記事
トピックボードAD
キャリア・教育の人気記事
トレンドライブラリーAD
連載一覧
連載一覧はこちら
人気の動画
【田内学×後藤達也】新興国化する日本、プロの「新NISA」観
【田内学×後藤達也】新興国化する日本、プロの「新NISA」観
TSUTAYAも大量閉店、CCCに起きている地殻変動
TSUTAYAも大量閉店、CCCに起きている地殻変動
【田内学×後藤達也】激論!日本を底上げする「金融教育」とは
【田内学×後藤達也】激論!日本を底上げする「金融教育」とは
【田内学×後藤達也】株高の今「怪しい経済情報」ここに注意
【田内学×後藤達也】株高の今「怪しい経済情報」ここに注意
アクセスランキング
  • 1時間
  • 24時間
  • 週間
  • 月間
  • シェア
会員記事アクセスランキング
  • 1時間
  • 24時間
  • 週間
  • 月間
トレンドウォッチAD
東洋経済education×ICT