【Python】初心者でも作れるもの(成果物)の例を3つ紹介

【Python】初心者でも作れるもの(成果物)の例を3つ紹介

公開: 更新:



Python初心者でも作れるもの

【PR】『Python』を学べる企業・個人向けのプログラミングコース

成果物の例①Excel自動化ツール

Pythonを使用してExcelファイルを自動処理するツールは、日常的な事務作業を大幅に効率化できます。pandasやopenpyxlなどのライブラリを利用して、複数のExcelファイルからのデータ抽出や集計、分析、レポート生成などを自動化できます。

【サンプルコード】
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime

def process_sales_data(filename):
    df = pd.read_excel(filename)
    
    monthly_sales = df.groupby('月')['売上金額'].sum()
    
    result_file = f"集計結果_{datetime.now().strftime('%Y%m%d')}.xlsx"
    monthly_sales.to_excel(result_file)
    
    plt.figure(figsize=(10, 6))
    monthly_sales.plot(kind='bar', color='skyblue')
    plt.title('月別売上集計')
    plt.ylabel('売上金額')
    plt.tight_layout()
    plt.savefig('monthly_sales.png')
    
    return result_file, 'monthly_sales.png'

result_file, graph_file = process_sales_data('sales_data.xlsx')
print(f"集計結果を{result_file}に保存しました")
print(f"グラフを{graph_file}に保存しました")
【実行結果】
集計結果を集計結果_20250405.xlsxに保存しました
グラフをmonthly_sales.pngに保存しました
行番号 詳細説明
1-3行目 必要なライブラリをインポート
5行目 Excelファイルを処理する関数を定義
6行目 pandasでExcelファイルを読み込みDataFrameとして格納
8行目 「月」列でグループ化し「売上金額」列の合計を計算
10行目 現在の日付を含む出力ファイル名を生成
11行目 集計結果を新しいExcelファイルに出力
13-18行目 集計データをグラフ化してPNG画像として保存
20行目 処理結果のファイル名を返す
22-24行目 関数を呼び出して実行し、保存結果を表示

Excel自動化ツールは単純なデータ集計だけではなく、データのクレンジングや複数ファイルの統合、条件付き書式の適用など様々な機能を実装できます。Pythonのライブラリを組み合わせることで、手作業では数時間かかる作業を数秒で完了させることが可能です。

成果物の例②スクレイピングツール

Webスクレイピングは特定のWebサイトから必要な情報を自動的に収集する技術です。requestsとBeautifulSoupライブラリを組み合わせて、Webページの情報を構造的に解析し、必要なデータだけを抽出するツールを開発できます。

【サンプルコード】
import requests
from bs4 import BeautifulSoup
import pandas as pd
import time

def scrape_weather_data(cities):
    weather_data = []
    
    for city in cities:
        url = f"https://example-weather.com/forecast/{city}"
        
        response = requests.get(url)
        
        if response.status_code == 200:
            soup = BeautifulSoup(response.text, 'html.parser')
            
            temperature = soup.select_one('.temperature').text.strip()
            condition = soup.select_one('.condition').text.strip()
            humidity = soup.select_one('.humidity').text.strip()
            
            weather_data.append({
                '都市': city,
                '気温': temperature,
                '天気': condition,
                '湿度': humidity
            })
            
            time.sleep(1)
        else:
            print(f"{city}の天気情報の取得に失敗しました。ステータスコード: {response.status_code}")
    
    df = pd.DataFrame(weather_data)
    df.to_csv('weather_data.csv', index=False, encoding='utf-8')
    return df

cities = ['東京', '大阪', '札幌', '福岡', '那覇']
weather_df = scrape_weather_data(cities)
print(weather_df)
【実行結果】
    都市    気温    天気    湿度
0  東京   23.5℃   晴れ    45%
1  大阪   25.0℃   曇り    60%
2  札幌   18.2℃   雨     80%
3  福岡   26.8℃   晴れ    50%
4  那覇   29.3℃   晴れ    65%
行番号 詳細説明
1-4行目 必要なライブラリをインポート
6行目 天気データを取得する関数を定義
7行目 取得したデータを格納するリストを初期化
9行目 都市ごとに処理を繰り返す
10行目 天気情報を取得するURL(架空の例)を生成
12行目 requestsライブラリでWebページを取得
14行目 HTTPステータスコードが200(成功)か確認
15行目 BeautifulSoupでHTMLを解析
17-19行目 CSSセレクタで気温、天気、湿度の情報を抽出
21-26行目 取得したデータを辞書形式でリストに追加
28行目 サーバに負荷をかけないよう1秒間の待機時間を設定
29-30行目 エラー時のメッセージを表示
32-34行目 取得したデータをDataFrameに変換しCSVに保存
36-38行目 都市リストを定義し関数を実行して結果を表示

Webスクレイピングは市場調査や価格比較、ニュース記事の収集など様々な用途に応用できます。複数のWebサイトから継続的にデータを収集し分析することで、ビジネス上の意思決定や研究活動をサポートできます。

スクレイピングツールを開発する際は対象Webサイトの利用規約を確認し、サーバに過度な負荷をかけないよう配慮することが重要です。多くのWebサイトではrobots.txtファイルによってクローラーの動作を制限していることもあるため、適切なマナーとルールを守りながらツールを実装する必要があります。

【PR】『Python』を学べる個人・中高生向けのプログラミングコース

成果物の例③画像認識ツール

Pythonは画像処理や機械学習の分野でも広く活用されています。OpenCVTensorFlowなどのライブラリを組み合わせることで、顔検出や物体認識などの機能を実装できます。

【サンプルコード】
import cv2
import numpy as np
import matplotlib.pyplot as plt
from datetime import datetime

def detect_faces(image_path):
    image = cv2.imread(image_path)
    
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
    
    faces = face_cascade.detectMultiScale(
        gray,
        scaleFactor=1.1,
        minNeighbors=5,
        minSize=(30, 30)
    )
    
    print(f"{len(faces)}個の顔を検出しました")
    
    for (x, y, w, h) in faces:
        cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)
    
    image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
    
    result_filename = f"detected_faces_{datetime.now().strftime('%Y%m%d_%H%M%S')}.jpg"
    cv2.imwrite(result_filename, cv2.cvtColor(image_rgb, cv2.COLOR_RGB2BGR))
    
    return image_rgb, result_filename, len(faces)

image_path = 'group_photo.jpg'
result_image, saved_file, face_count = detect_faces(image_path)

plt.figure(figsize=(12, 8))
plt.imshow(result_image)
plt.title(f'検出された顔: {face_count}個')
plt.axis('off')
plt.show()
print(f"処理結果を{saved_file}に保存しました")
【実行結果】
5個の顔を検出しました
処理結果をdetected_faces_20250405_143027.jpgに保存しました
行番号 詳細説明
1-4行目 必要なライブラリをインポート
6行目 顔検出を行う関数を定義
7行目 OpenCVで画像ファイルを読み込み
9行目 画像をグレースケールに変換(検出処理の効率化のため)
11行目 OpenCVの顔検出器(Haar Cascade)を読み込み
13-18行目 顔検出を実行し検出された顔の座標情報を取得
20行目 検出された顔の数を表示
22-23行目 検出された各顔の周りに緑色の四角形を描画
25行目 BGR形式からRGB形式に変換(Matplotlibで表示するため)
27-28行目 現在の日時を含むファイル名で処理結果を保存
30行目 処理結果と関連情報を返す
32-33行目 画像ファイルのパスを指定して関数を実行
35-39行目 Matplotlibを使用して結果を視覚的に表示
40行目 保存したファイル名を表示

画像認識技術は単純な顔検出だけではなく感情分析や年齢推定、物体の分類など様々な応用が可能です。より高度な機能を実装する場合は、TensorFlowやPyTorchなどの深層学習フレームワークと組み合わせることで、精度の高い画像認識システムを開発できます。

初心者向けのプロジェクトとしては、顔検出や色検出などの基本的な機能から始め、徐々に難易度を上げていくアプローチがおすすめです。画像認識の学習過程で得られる知識やスキルは、データ分析AI開発など様々な分野に応用できます。

※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。

ITやプログラミングに関するコラム


ITやプログラミングに関するニュース

ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。

コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア 金融業界の業務効率化を加速するニッセイアセットマネジメントの生成AI×GAS活用研修事例 - IT・プログラミングを知って学べるコネクトメディア 【製造業のDX人材育成事例】デジタル人材の即戦力化を実現する、日本ガイシ株式会社の異動者向オンボーディング研修 - ITやプログラミングを知って学べるコネクトメディア フューチャーアーキテクト株式会社が実現した新入社員向けIT研修プログラムでタスクフォース制度が主体的な学びと成長を生み出す - IT・プログラミングを知って学べるコネクトメディア コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【IT新入社員研修】オンラインとオフラインの最適バランスを実現したFutureOneの導入事例 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【新入社員研修】柔軟なハイブリッド型Java研修で実現した新卒20名の成長と成果|サークレイス株式会社 - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/現場により近いところにデジタルを根付かせるDX基礎講座研修|株式会社ブリヂストン - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/業務の効率化・DX推進に向けたIT人材育成への第一歩|株式会社カナエ - ITやプログラミングを知って学べるコネクトメディア 企業・法人向けのIT・プログラミング研修 - ITやプログラミングを知って学べるコネクトメディア

新着記事

対象者別で探す

子供(小学生・中学生・高校生)向け
プログラミング教室検索する

子供(小学生・中学生・高校生)がロボットやプログラミング言語を学ぶことができるオフラインからオンラインスクールを検索、比較することが可能です。

子供(小学生・中学生・高校生)
プログラミング教室検索する

ITやプログラムなどの
最新情報を検索する

日々、新しいITやプログラミング言語の情報が流れていきますが、特定の情報を時系列でニュースやコラムを確認することができます。

ITやプログラムなどの
最新情報を検索する