毎日の歩数を記録して、「最近あまり歩いていないかも」「先週より歩数が増えたかな?」と確認したいと思ったことはありませんか?
Pythonを使えば、毎日の歩数をCSVファイルに記録し、過去のデータを読み込んでグラフでわかりやすく確認できます。
この記事では、Python初心者の方でも取り組めるように、歩数データの入力からCSVファイルへの保存、データの読み込み、グラフ化までを順番に解説します。
この記事で紹介するプログラムを作ることで、Pythonの基本的なファイル操作やデータの扱い方、Matplotlibを使ったグラフ作成も学べます。
この記事でできること
この記事では、次のような歩数管理プログラムを作成します。
- 毎日の歩数を入力する
- 日付と歩数をCSVファイルに保存する
- 過去の歩数データを読み込む
- 1週間の歩数を集計する
- 歩数の推移をグラフで確認する
- 平均歩数と目標歩数を比較する
Pythonを使って身近なデータを扱うことで、プログラミング初心者でも実践的なスキルを身につけられます。
Pythonで歩数記録プログラムを作る準備
まずは、Pythonのプログラムを実行できる環境を準備しましょう。
Pythonがまだインストールされていない場合は、先にPythonを利用できる環境を用意してください。
今回のプログラムでは、主に次のライブラリを使用します。
- csv:CSVファイルの読み書きを行う
- datetime:日付を取得する
- matplotlib:グラフを作成する
csvとdatetimeはPythonに標準で含まれているため、追加のインストールは必要ありません。
一方、グラフを作成するためのMatplotlibは、環境によってはインストールが必要です。
次のコマンドを実行してインストールしましょう。
pip install matplotlibJupyter Notebookなどを利用している場合は、環境に合わせてインストール方法を確認してください。
毎日の歩数をCSVファイルに記録する
まずは、毎日の歩数を入力してCSVファイルに保存するプログラムを作ります。
CSVとは、データをカンマで区切って保存するファイル形式です。
たとえば、次のような形で日付と歩数を保存できます。
日付,歩数
2026-11-10,6500
2026-11-11,8200
2026-11-12,7100このように保存しておくと、後からPythonでデータを読み込んだり、Excelなどの表計算ソフトで確認したりできます。
歩数を入力するプログラム
最初に、キーボードから歩数を入力する簡単なプログラムを作ってみましょう。
steps = int(input("今日の歩数を入力してください:"))
print(f"今日の歩数は{steps}歩です。")プログラムを実行すると、次のように表示されます。
今日の歩数を入力してください:7500
今日の歩数は7500歩です。input()で入力されたデータは文字列として扱われるため、int()を使って整数に変換しています。
日付と歩数をCSVファイルに保存する
次に、入力した歩数と今日の日付をCSVファイルに保存します。
import csv
from datetime import datetime
steps = int(input("今日の歩数を入力してください:"))
today = datetime.now().strftime("%Y-%m-%d")
with open("steps.csv", "a", newline="", encoding="utf-8") as file:
writer = csv.writer(file)
writer.writerow([today, steps])
print("歩数を保存しました。")このプログラムを実行すると、steps.csvというファイルが作成されます。
プログラムを実行するたびに、新しい日付と歩数がファイルに追加されます。
コードの内容を確認しよう
ここでは、CSVファイルを開くために次のコードを使用しています。
with open("steps.csv", "a", newline="", encoding="utf-8") as file:“a”は、すでにあるファイルの末尾にデータを追加するためのモードです。
そのため、毎日プログラムを実行しても、以前に記録した歩数データを残したまま新しいデータを追加できます。
また、writer.writerow()を使うことで、日付と歩数を1行のデータとしてCSVファイルに保存できます。
保存した歩数データを読み込む
続いて、CSVファイルに保存した歩数データをPythonで読み込んでみましょう。
次のコードを実行してください。
import csv
with open("steps.csv", "r", encoding="utf-8") as file:
reader = csv.reader(file)
for row in reader:
print(row)CSVファイルに次のデータが保存されている場合、
2026-11-10,6500
2026-11-11,8200
2026-11-12,7100実行結果は次のようになります。
['2026-11-10', '6500']
['2026-11-11', '8200']
['2026-11-12', '7100']CSVから読み込んだデータは、1行ごとにリストとして取得できます。
過去の歩数データを見やすく表示する
読み込んだデータを、よりわかりやすく表示することもできます。
import csv
with open("steps.csv", "r", encoding="utf-8") as file:
reader = csv.reader(file)
for row in reader:
date = row[0]
steps = row[1]
print(f"{date}:{steps}歩")実行結果は次のようになります。
2026-11-10:6500歩
2026-11-11:8200歩
2026-11-12:7100歩このように、CSVファイルから読み込んだデータを自由な形式で表示できるのがPythonの便利なところです。
Pythonで歩数データをグラフ化する
ここからは、保存した歩数データをグラフにしてみましょう。
毎日の歩数を数字だけで確認するよりも、グラフにすると歩数の増減や全体的な傾向をひと目で確認できます。
今回はMatplotlibを使って、折れ線グラフを作成します。
CSVファイルからデータを読み込む
まずは、日付と歩数をそれぞれ別のリストに保存します。
import csv
dates = []
steps = []
with open("steps.csv", "r", encoding="utf-8") as file:
reader = csv.reader(file)
for row in reader:
dates.append(row[0])
steps.append(int(row[1]))datesには日付、stepsには歩数が保存されます。
CSVファイルから読み込んだ歩数は文字列なので、int()を使って数値に変換している点に注意しましょう。
Matplotlibで折れ線グラフを作成する
次のコードを追加すると、歩数の推移を折れ線グラフで表示できます。
import matplotlib.pyplot as plt
plt.plot(dates, steps, marker="o")
plt.title("Daily Step Count")
plt.xlabel("Date")
plt.ylabel("Steps")
plt.show()plt.plot()を使うことで、折れ線グラフを作成できます。
また、marker=”o”を指定すると、それぞれの日のデータを丸い印で表示できます。
このプログラムを実行すると、日付ごとの歩数の変化を確認できるグラフが表示されます。
たとえば、次のようなデータを記録した場合、
- 11月10日:6,500歩
- 11月11日:8,200歩
- 11月12日:7,100歩
- 11月13日:9,300歩
- 11月14日:6,800歩
歩数の増減を折れ線グラフで確認できます。
1週間の歩数を集計してみよう
毎日の歩数を記録できるようになったら、次はデータを集計してみましょう。
ここでは、記録した歩数から合計歩数と平均歩数を計算します。
import csv
steps = []
with open("steps.csv", "r", encoding="utf-8") as file:
reader = csv.reader(file)
for row in reader:
steps.append(int(row[1]))
total_steps = sum(steps)
average_steps = total_steps / len(steps)
print(f"合計歩数:{total_steps}歩")
print(f"平均歩数:{average_steps:.0f}歩")たとえば、1週間の歩数データを集計すると、次のような結果が表示されます。
合計歩数:51600歩
平均歩数:7371歩sum()を使うと、リストに保存された数値の合計を簡単に計算できます。
また、len()を使うことで、記録されているデータの件数を取得できます。
平均歩数は、合計歩数を記録日数で割ることで計算できます。
目標歩数と比較する
さらに、1日の目標歩数を設定して、平均歩数と比較してみましょう。
今回は、1日の目標を8,000歩として設定します。
goal = 8000
if average_steps >= goal:
print("目標歩数を達成しています!")
else:
difference = goal - average_steps
print(f"目標まであと{difference:.0f}歩です。")平均歩数が8,000歩以上の場合は、目標達成のメッセージが表示されます。
目標に届いていない場合は、あと何歩必要なのかを確認できます。
このようにif文を使うことで、データの条件に応じて処理を変えられます。
歩数の記録からグラフ作成までを1つのプログラムにまとめる
ここまで紹介した内容を組み合わせると、歩数を記録してグラフ化するプログラムを作れます。
import csv
from datetime import datetime
import matplotlib.pyplot as plt
# 今日の歩数を入力する
today_steps = int(input("今日の歩数を入力してください:"))
# 今日の日付を取得する
today = datetime.now().strftime("%Y-%m-%d")
# CSVファイルに保存する
with open("steps.csv", "a", newline="", encoding="utf-8") as file:
writer = csv.writer(file)
writer.writerow([today, today_steps])
print("歩数を保存しました。")
# CSVファイルからデータを読み込む
dates = []
steps = []
with open("steps.csv", "r", encoding="utf-8") as file:
reader = csv.reader(file)
for row in reader:
dates.append(row[0])
steps.append(int(row[1]))
# 合計と平均を計算する
total_steps = sum(steps)
average_steps = total_steps / len(steps)
print(f"記録日数:{len(steps)}日")
print(f"合計歩数:{total_steps}歩")
print(f"平均歩数:{average_steps:.0f}歩")
# グラフを作成する
plt.plot(dates, steps, marker="o")
plt.title("Daily Step Count")
plt.xlabel("Date")
plt.ylabel("Steps")
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()このプログラムを実行することで、歩数の入力からCSVファイルへの保存、データの集計、グラフの表示までをまとめて行えます。
プログラムをさらに便利にする応用アイデア
基本的な歩数管理プログラムが完成したら、さらに機能を追加してみましょう。
月ごとの歩数を集計する
日付から月を取り出して、月ごとの合計歩数や平均歩数を計算できます。
長期間のデータを記録すると、「今月は先月より多く歩いた」といった変化も確認しやすくなります。
目標を達成した日を表示する
目標歩数を設定して、達成した日だけを表示するプログラムも作れます。
たとえば、次のような情報を表示できます。
目標を達成した日
2026-11-11:8200歩
2026-11-13:9300歩リストやif文を使う練習にもおすすめです。
棒グラフで歩数を比較する
日ごとの歩数を比較したい場合は、折れ線グラフだけでなく棒グラフも便利です。
Matplotlibでは、次のように記述できます。
plt.bar(dates, steps)
plt.title("Daily Step Count")
plt.xlabel("Date")
plt.ylabel("Steps")
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()折れ線グラフは歩数の変化を見るのに向いています。
一方、棒グラフは「どの日が最も多く歩いたのか」を比較しやすいという特徴があります。
データの目的に合わせて、グラフを使い分けてみましょう。
Pandasを使ってデータ分析する
Pythonに慣れてきたら、Pandasというライブラリを使って歩数データを分析する方法もおすすめです。
Pandasを使うと、CSVファイルの読み込みや集計をより効率的に行えます。
今回紹介したcsvモジュールを使った方法を理解してからPandasに挑戦すると、データ分析の流れをより理解しやすくなります。
初心者がつまずきやすいポイント
歩数管理プログラムを作るときは、いくつか注意したいポイントがあります。
CSVから読み込んだ歩数は文字列になっている
CSVから読み込んだデータは、基本的に文字列として扱われます。
そのため、計算をするときは次のようにint()で数値に変換しましょう。
steps.append(int(row[1]))数値に変換せずに計算しようとすると、エラーが発生する場合があります。
同じ日に何度も実行するとデータが重複する
今回のプログラムは、実行するたびにCSVファイルへ新しいデータを追加します。
そのため、同じ日に複数回実行すると、同じ日付のデータが複数保存されます。
慣れてきたら、「同じ日付のデータがすでにある場合は上書きする」といった機能を追加してみるのもおすすめです。
データがない場合は平均を計算できない
CSVファイルに歩数データが1件もない場合、平均歩数を計算するとエラーが発生します。
実用的なプログラムにする場合は、データが存在するかどうかを確認する処理も追加しましょう。
まとめ
今回は、Pythonを使って毎日の歩数を記録し、CSVファイルに保存してグラフ化する方法を紹介しました。
この記事のポイントは次のとおりです。
- input()を使って毎日の歩数を入力できる
- csvモジュールを使って歩数データを保存できる
- CSVファイルから過去のデータを読み込める
- sum()とlen()を使って合計や平均を計算できる
- Matplotlibを使って歩数の変化をグラフ化できる
- 目標歩数との比較や月ごとの集計にも応用できる
Pythonを学ぶときは、今回の歩数管理のように、毎日の生活に関係するデータを使ってプログラムを作るのがおすすめです。
自分で記録したデータをPythonで集計し、グラフとして表示できるようになると、プログラミングの便利さを実感しやすくなります。
まずは毎日の歩数をCSVファイルに保存するところから始めて、少しずつ集計やグラフ作成などの機能を追加してみてください。
