
WhatsAppは、日常的なコミュニケーションだけでなく、チーム内の情報共有や顧客対応など、さまざまな場面で利用されています。
しかし、チャット履歴が増えると、過去のメッセージを検索したり、やり取りの傾向を把握したりするのが難しくなります。
そこで今回は、WhatsAppのチャット履歴をCSV形式でエクスポートし、Pythonとpandasを使って簡単なデータ分析を行う方法を紹介します。
この記事では、以下の内容を扱います。
- WhatsAppのチャット履歴をエクスポートする方法
- CSVとHTML形式の違い
- Pythonでメッセージ数を集計する方法
- 日付ごとのチャット活動を可視化する方法
- チャットデータを扱う際の注意点
1. WhatsAppのチャット履歴を分析するメリット
WhatsAppのチャット履歴には、メッセージ本文だけでなく、送信者や送信日時などの情報も含まれています。
これらのデータを整理すると、さまざまな分析に活用できます。
例えば、次のようなケースが考えられます。
チーム内のコミュニケーション分析
プロジェクト用のグループチャットを分析し、メッセージ数や活動が多い時間帯を確認できます。
顧客対応の振り返り
適切な権限のあるチャットデータを利用して、問い合わせ件数や対応状況を分析できます。
会話履歴のアーカイブ
重要なやり取りを保存し、後から検索・確認できるようにします。
特にCSV形式で保存すると、PythonやExcelなどのツールでデータを扱いやすくなります。
2. WhatsAppのチャット履歴をエクスポートする
WhatsAppのモバイルアプリには、チャット履歴をエクスポートする標準機能があります。
一方、PC上のWhatsApp Webからデータを取得し、分析に適した形式で保存したい場合は、ブラウザ拡張機能を利用する方法もあります。
例えば、WhatsApp chat export ツールを使用すると、WhatsApp Webのチャット履歴をHTML、CSV、Excelなどの形式で保存できます。
エクスポートの手順
ステップ1:WhatsApp Webを開く
ブラウザで にアクセスし、WhatsAppアカウントにログインします。
ステップ2:拡張機能を準備する
Chromeブラウザに対応した WAExport を利用します。
ステップ3:対象のチャットを選択する
エクスポートしたい個人チャットまたはグループチャットを選択します。
ステップ4:ファイル形式を指定する
用途に応じて、出力形式を選択します。
| 形式 | 主な用途 |
|---|---|
| CSV | Pythonによるデータ分析 |
| Excel | 表計算ソフトでの集計 |
| HTML | ブラウザでの閲覧・保存 |
今回はPythonで分析するため、CSV形式を選択します。
必要に応じて対象期間を指定し、ファイルを保存してください。
3. PythonでCSVファイルを読み込む
ここからは、エクスポートしたチャットデータをPythonで分析します。
実行環境
今回使用するライブラリは以下のとおりです。
- Python 3
- pandas
- matplotlib
まず、必要なライブラリをインストールします。
CSVファイルの構造
今回は、次のような形式のCSVファイルを例にします。
| Sender | Timestamp | Message |
|---|---|---|
| Alice | 2026-10-20 09:30 | おはようございます |
| Bob | 2026-10-20 09:35 | おはようございます! |
| Alice | 2026-10-20 10:00 | 今日の予定を確認しましょう |
| Carol | 2026-10-20 10:15 | 了解しました |
※これは説明用のサンプルデータです。実際のエクスポートファイルでは、列名や日時形式が異なる場合があります。
pandasで読み込む
read_csv()を使用すると、CSVファイルをDataFrameとして読み込めます。
まずは列名やデータ型を確認し、分析に必要な情報が正しく取得できているかチェックしましょう。
4. 送信者ごとのメッセージ数を集計する
最初に、各参加者が送信したメッセージ数を集計してみます。
実行結果の例:
value_counts()を使用すると、送信者ごとの出現回数を簡単に計算できます。
これにより、グループ内でのメッセージ数の分布を確認できます。
ただし、メッセージ数が多いことが、必ずしもコミュニケーションの質の高さを意味するわけではありません。
分析結果は、あくまで活動状況を把握するための参考情報として利用することが重要です。
5. 日付ごとのメッセージ数を分析する
次に、チャットが活発だった日を調べてみます。
まず、送信日時をdatetime形式に変換します。
続いて、日付ごとのメッセージ数を集計します。
実行結果の例:
このように、日ごとのメッセージ数を確認できます。
プロジェクトの進行状況やイベント開催日などと比較すると、コミュニケーションの傾向を把握するヒントになるかもしれません。
6. matplotlibでチャット活動を可視化する
数値だけでなく、グラフを使うとデータの傾向を直感的に理解できます。
今回は、日付ごとのメッセージ数を棒グラフで表示します。
このコードを実行すると、日付ごとのメッセージ数を示す棒グラフが表示されます。
グラフを確認することで、以下のような傾向を見つけやすくなります。
- 特定の日にメッセージ数が増えているか
- 活動が少ない期間があるか
- 日によって活動量に大きな差があるか
より詳しく分析したい場合は、曜日別や時間帯別に集計することも可能です。
7. 応用:チャットデータから何ができる?
CSV形式で整理されたチャットデータは、単純なメッセージ数の集計以外にも活用できます。
時間帯別の活動分析
送信日時から時間情報を抽出すると、どの時間帯にメッセージが集中しているかを調べられます。
返信時間の分析
送信者と送信日時を組み合わせれば、参加者間の返信時間を推定することもできます。
ただし、連続するメッセージが必ずしも返信関係にあるとは限りません。
そのため、返信時間を正確に分析するには、どのメッセージを返信として扱うか、事前にルールを定義する必要があります。
ローカルLLMによる会話の要約
エクスポートしたメッセージを整理し、ローカル環境で動作するLLMに入力することで、会話の要約を生成することも考えられます。
例えば、以下のような情報を抽出する用途です。
- 重要な議題
- 決定事項
- 未完了のタスク
- 次回までの対応事項
ただし、個人情報や機密情報を含む場合は、利用目的やアクセス権限を十分に確認する必要があります。
8. チャットデータを扱う際の注意点
WhatsAppのチャット履歴には、個人情報や機密性の高い内容が含まれる場合があります。
データをエクスポートして分析する際は、以下の点に注意してください。
- 必要な権限や同意を確認する
- 分析目的に関係のない情報は取得しない
- 個人情報を可能な範囲で匿名化する
- エクスポートしたファイルを安全に保存する
- 不要になったデータは適切に削除する
特に、実際の会話内容を公開リポジトリや外部サービスにアップロードしないよう注意しましょう。
まとめ
今回は、WhatsAppのチャット履歴をCSV形式でエクスポートし、Pythonとpandasで基本的な分析を行う方法を紹介しました。
今回のポイントは以下のとおりです。
- CSV形式を使うとチャットデータをプログラムで処理しやすい
- pandasで送信者別・日付別のメッセージ数を集計できる
- matplotlibで活動状況を可視化できる
- 返信時間の分析やLLMによる要約にも応用できる
チャット履歴を単に保存するだけでなく、構造化されたデータとして活用することで、コミュニケーションの傾向をより深く理解できるようになります。
まずは小規模なサンプルデータから試してみるとよいでしょう。