Pandasでデータ分析|実践サンプルコード付き

目次

副業案件で初めてデータ分析を任されて、人生が変わった話

2024年の秋、私は焦ってた。Web制作の副業で月10万くらい稼いでたけど、単価が頭打ち。コーディング案件って、どうしても時給3,000円が限界なんだよね。

で、たまたまクラウドワークスを眺めてたら、「Excelデータの分析レポート作成」って案件が目に入った。報酬8万円、作業時間の目安10時間。時給8,000円。

「これ、絶対怪しい案件だろ」

最初はそう思った。でも詳細を見たら、「Pythonで簡単なデータ分析ができる方」って書いてある。PythonならWeb制作で使ってたし、データ分析も少しは触ったことある。

深夜、自宅のデスクでクラウドワークスの画面を見て驚く30代男性の線画イラスト

半信半疑で提案文を送った。翌日、採用の連絡。クライアントは中小企業の経営者で、毎月のExcel売上データを分析してほしいとのこと。

「Pandasっていうライブラリ使えば簡単ですよ」って言われて、初めてPandasをちゃんと勉強した。それまでは名前だけ知ってて、触ったことなかった。

結果?3日で納品して、クライアントから「今まで2週間かけて手作業でやってた分析が3分で終わった」って感激された。その後、月次契約で12万円の継続案件になった。時給換算で5時間の作業だから、月10時間で12万円。

あれから半年。今はPandasを使ったデータ分析案件を月3件こなして、副業収入が月35万円を超えてる。Web制作の時の3倍以上。

この記事では、「Pandasって何?」「どうやって勉強すればいい?」「副業案件は本当に取れるの?」って思ってる人に向けて、実践的なサンプルコード付きでPandasの使い方を解説していく。

プログラミング学習してる人、副業で収入増やしたい人、エンジニアとしてスキルアップしたい人。Pandasは、今すぐ学ぶべきスキルの一つ。需要が圧倒的に高くて、案件単価も高い。

実際、私がメンターしてる受講生の中にも、Pandas学習を始めて3ヶ月で月8万円稼いでる人がいる。特別な才能は要らない。正しい学習方法と、正しいコードの書き方を知ってれば、誰でも使えるようになる。

なぜ今Pandasを学ぶべきなのか

データ分析案件が爆発的に増えてる

「DX推進」「データドリブン経営」…こういう言葉、最近やたら聞くよね。企業はみんな、手元のデータを活用したがってる。でも、データ分析できる人材がいない。

クラウドワークスで「データ分析」って検索すると、2,500件以上の案件が出てくる。ランサーズでも400件以上。しかも、「Python」「Pandas」って指定してる案件の単価が、他より圧倒的に高い。

私が初めて案件を取ったときも、提案文を送って5時間後には「ぜひお願いします」って返事が来た。競合は10人くらいいたけど、Pandasが使える人は私だけだった。

これ、どういう意味かわかる?

需要が供給を圧倒的に上回ってる。つまり、Pandasのスキルがあれば、案件が取り放題ってこと。

学習コストが低い

Pandasの良いところは、学習曲線が緩やかなこと。基本的な使い方なら、1週間もあれば十分。

私の場合:

  • Pandas学習開始:2024年9月
  • 初案件獲得:2024年9月(学習開始から1週間後)
  • 月10万円達成:2024年10月(1ヶ月後)
  • 月30万円達成:2025年2月(5ヶ月後)

しかも、Pythonの基礎さえできてれば、Pandasの文法はすぐ理解できる。コード自体もシンプルで読みやすい。

案件単価が高い

一般的な副業案件の時給:

  • ライティング:1,000~2,000円
  • Webデザイン:1,500~3,000円
  • Web制作(HTML/CSS/JS):2,000~4,000円

Pandasを使うデータ分析案件の時給:

  • 初心者:3,000~5,000円
  • 中級者:5,000~8,000円
  • 上級者:8,000~15,000円以上

私が今取ってる案件の平均時給は6,500円くらい。月40時間働けば、26万円。これだけで、普通のサラリーマンの月収に届く。

しかも、経験を積めば単価はどんどん上がる。今は時給1万円の案件も普通に提案してる。

カフェでノートパソコンを開き、データ分析の勉強をする20代女性の線画イラスト

他のスキルと組み合わせやすい

Pandasは、他の技術と組み合わせることで価値が倍増する。

例えば:

  • Pandas + 機械学習 = データサイエンティスト案件(月単価50~100万円)
  • Pandas + Web開発 = データドリブンなWebアプリ開発
  • Pandas + 自動化 = 業務効率化ツール開発

私はWeb制作の経験があったから、Pandasで分析したデータをWebダッシュボードで可視化する案件を取ってる。これが超高単価。1案件30~50万円。

Pandasって何? 基本から理解する

Pandasの正体

Pandas(パンダス)は、Pythonでデータ分析を行うためのライブラリ。ExcelやSQLみたいな表形式のデータを、プログラムで簡単に扱えるようにしたもの。

「データ分析」って聞くと難しそうだけど、やってることはシンプル:

  1. データを読み込む
  2. データを加工する(並び替え、フィルタリング、集計など)
  3. データを分析する(統計、相関など)
  4. 結果を可視化する

Pandasを使えば、これらの作業がたった数行のコードでできる。

DataFrameとSeries:Pandasの2つの柱

Pandasには2つの基本データ構造がある。

DataFrame(データフレーム)
表形式のデータ。Excelのシートみたいなもの。行と列がある。

import pandas as pd

# DataFrameの作成例
data = {
    '名前': ['田中', '佐藤', '鈴木'],
    '年齢': [25, 30, 28],
    '売上': [120000, 150000, 130000]
}
df = pd.DataFrame(data)
print(df)

実行結果:

   名前  年齢    売上
0  田中  25  120000
1  佐藤  30  150000
2  鈴木  28  130000

Series(シリーズ)
1列だけのデータ。DataFrameの1列を取り出すとSeriesになる。

# Seriesの取得例
ages = df['年齢']
print(ages)
print(type(ages))  # <class 'pandas.core.series.Series'>

DataFrameが表全体で、Seriesが列。この2つを理解すれば、Pandasの8割は理解できる。

なぜExcelじゃダメなのか

「Excelでいいじゃん」って思った人もいるよね。私も最初はそう思ってた。

でも、Pandasの方が圧倒的に優れてる点がある:

  1. 大量データに強い
  • Excel:10万行でカクカク
  • Pandas:100万行でもサクサク
  1. 再現性がある
  • Excel:手作業だから同じ結果を再現するのが難しい
  • Pandas:コードだから何度でも同じ結果が出る
  1. 自動化できる
  • Excel:毎回手作業
  • Pandas:一度コードを書けば自動化できる
  1. バージョン管理できる
  • Excel:ファイルを保存し直す
  • Pandas:Gitでコードを管理できる

実際、私が取った初案件は、クライアントが毎月2週間かけてExcelで手作業してた分析を、Pandasで3分に短縮した。これだけで価値がある。

実践サンプルコード集:これだけ覚えれば案件が取れる

ここからは、実際に副業案件でよく使うPandasのコードを紹介していく。全部コピペで動くサンプルコード付き。

データの読み込み

データ分析の第一歩は、データを読み込むこと。Pandasは色んな形式のファイルを簡単に読み込める。

CSVファイルを読み込む

import pandas as pd

# CSVファイルを読み込む
df = pd.read_csv('sales_data.csv')

# 最初の5行を表示
print(df.head())

# データの基本情報を確認
print(df.info())

# データの統計情報を確認
print(df.describe())

Excelファイルを読み込む

# Excelファイルを読み込む(特定のシートを指定)
df = pd.read_excel('sales_report.xlsx', sheet_name='Sheet1')

# 複数シートを読み込む
all_sheets = pd.read_excel('sales_report.xlsx', sheet_name=None)

これだけで、クライアントから送られてきたExcelやCSVデータをすぐに分析できる。

オンラインミーティングでクライアントにデータ分析の説明をする40代男性の線画イラスト

基本統計量の算出

データを読み込んだら、まず全体像を掴む。基本統計量を見れば、データの傾向が一発でわかる。

import pandas as pd
import numpy as np

# サンプルデータの作成
data = {
    '日付': pd.date_range('2024-01-01', periods=30, freq='D'),
    '売上': np.random.randint(50000, 200000, 30),
    '来店客数': np.random.randint(50, 200, 30),
    '客単価': np.random.randint(2000, 5000, 30)
}
df = pd.DataFrame(data)

# 基本統計量を一括で取得
print(df.describe())

# 個別に統計量を取得
print(f"売上の平均: {df['売上'].mean():.0f}円")
print(f"売上の中央値: {df['売上'].median():.0f}円")
print(f"売上の標準偏差: {df['売上'].std():.0f}円")
print(f"売上の最大値: {df['売上'].max():.0f}円")
print(f"売上の最小値: {df['売上'].min():.0f}円")

# 月別の集計
df['月'] = df['日付'].dt.to_period('M')
monthly = df.groupby('月')['売上'].agg(['sum', 'mean', 'count'])
print(monthly)

このコード、初案件でそのまま使った。クライアントが「すごい!今まで電卓で計算してた」って驚いてた。

欠損値の処理

実務のデータって、必ず欠損値(空白のデータ)がある。これを適切に処理しないと、分析結果がめちゃくちゃになる。

import pandas as pd
import numpy as np

# 欠損値を含むサンプルデータ
data = {
    '商品名': ['A', 'B', 'C', 'D', 'E'],
    '売上': [10000, np.nan, 15000, 12000, np.nan],
    '在庫': [50, 30, np.nan, 40, 25]
}
df = pd.DataFrame(data)

print("元のデータ:")
print(df)

# 欠損値の確認
print("\n欠損値の数:")
print(df.isnull().sum())

# 欠損値を含む行を削除
df_dropna = df.dropna()
print("\n欠損値を含む行を削除:")
print(df_dropna)

# 欠損値を特定の値で埋める(例:0)
df_fillna = df.fillna(0)
print("\n欠損値を0で埋める:")
print(df_fillna)

# 欠損値を平均値で埋める
df['売上'].fillna(df['売上'].mean(), inplace=True)
print("\n売上の欠損値を平均値で埋める:")
print(df)

# 前の値で埋める(forward fill)
df_ffill = df.fillna(method='ffill')
print("\n前の値で埋める:")
print(df_ffill)

欠損値処理は、データ分析案件で必ず出てくる。これができるだけで、「ちゃんとデータ分析わかってる人」って評価される。

データのフィルタリングと並び替え

「売上が10万円以上のデータだけ見たい」「売上順に並び替えたい」…こういうリクエストは超よくある。

import pandas as pd
import numpy as np

# サンプルデータ
data = {
    '商品名': ['商品A', '商品B', '商品C', '商品D', '商品E'],
    '売上': [120000, 85000, 150000, 95000, 200000],
    'カテゴリ': ['家電', '衣料', '家電', '食品', '家電'],
    '在庫': [10, 50, 5, 30, 2]
}
df = pd.DataFrame(data)

# 売上が10万円以上のデータ
high_sales = df[df['売上'] >= 100000]
print("売上10万円以上:")
print(high_sales)

# カテゴリが「家電」のデータ
electronics = df[df['カテゴリ'] == '家電']
print("\n家電カテゴリ:")
print(electronics)

# 複数条件(売上10万円以上かつ在庫10以下)
filtered = df[(df['売上'] >= 100000) & (df['在庫'] <= 10)]
print("\n売上10万円以上かつ在庫10以下:")
print(filtered)

# 売上の降順で並び替え
sorted_df = df.sort_values('売上', ascending=False)
print("\n売上の降順:")
print(sorted_df)

# 複数列で並び替え(カテゴリ→売上の順)
multi_sorted = df.sort_values(['カテゴリ', '売上'], ascending=[True, False])
print("\nカテゴリ→売上の順:")
print(multi_sorted)

この辺のコードは、提案文のサンプルコードとしても使える。「こういう分析ができます」ってアピールできる。

データの集計・グループ化

「カテゴリ別の売上合計を知りたい」「月別の平均売上を出したい」…こういう集計作業が、データ分析案件の8割。

import pandas as pd
import numpy as np

# サンプルデータ
data = {
    '日付': pd.date_range('2024-01-01', periods=100, freq='D'),
    '商品': np.random.choice(['商品A', '商品B', '商品C'], 100),
    '売上': np.random.randint(10000, 100000, 100),
    'カテゴリ': np.random.choice(['家電', '衣料', '食品'], 100)
}
df = pd.DataFrame(data)

# カテゴリ別の売上合計
category_total = df.groupby('カテゴリ')['売上'].sum()
print("カテゴリ別売上合計:")
print(category_total)

# カテゴリ別の統計量(合計、平均、最大、最小)
category_stats = df.groupby('カテゴリ')['売上'].agg(['sum', 'mean', 'max', 'min', 'count'])
print("\nカテゴリ別統計量:")
print(category_stats)

# 月別の売上推移
df['月'] = df['日付'].dt.to_period('M')
monthly_sales = df.groupby('月')['売上'].sum()
print("\n月別売上:")
print(monthly_sales)

# カテゴリと商品の2軸で集計
pivot = df.groupby(['カテゴリ', '商品'])['売上'].sum().reset_index()
print("\nカテゴリ×商品別売上:")
print(pivot)

# ピボットテーブル(Excelのピボットテーブルと同じ)
pivot_table = df.pivot_table(
    values='売上',
    index='カテゴリ',
    columns='商品',
    aggfunc='sum',
    fill_value=0
)
print("\nピボットテーブル:")
print(pivot_table)

ピボットテーブルは、クライアントへのレポート作成で超使う。Excelのピボットテーブルと同じことが、コードで自動化できる。

深夜、自宅で複雑なデータ分析コードに取り組む30代女性の線画イラスト

相関分析

「売上と広告費に関係はあるのか」「来店客数と客単価の相関は?」…こういう分析もPandasなら簡単。

import pandas as pd
import numpy as np

# サンプルデータ
data = {
    '広告費': [100000, 150000, 80000, 200000, 120000, 90000, 180000],
    '売上': [500000, 750000, 400000, 950000, 580000, 450000, 850000],
    '来店客数': [150, 220, 120, 280, 180, 130, 250],
    '客単価': [3333, 3409, 3333, 3393, 3222, 3462, 3400]
}
df = pd.DataFrame(data)

# 相関係数を計算
correlation = df.corr()
print("相関係数:")
print(correlation)

# 特定の2列の相関係数
ad_sales_corr = df['広告費'].corr(df['売上'])
print(f"\n広告費と売上の相関係数: {ad_sales_corr:.3f}")

# 相関が強いペアを探す
# 相関係数が0.7以上の組み合わせを抽出
corr_pairs = correlation.abs().unstack()
corr_pairs = corr_pairs[corr_pairs < 1]  # 自分自身との相関を除外
strong_corr = corr_pairs[corr_pairs > 0.7].sort_values(ascending=False)
print("\n強い相関関係:")
print(strong_corr)

相関分析は、クライアントに「おっ、この人ちゃんと分析できるな」って思わせる武器。数字で関係性を示せる。

データの可視化

数字だけのレポートより、グラフがあった方が絶対にわかりやすい。Pandasは、簡単にグラフが作れる。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

# 日本語フォント設定(文字化け防止)
plt.rcParams['font.sans-serif'] = ['DejaVu Sans']

# サンプルデータ
dates = pd.date_range('2024-01-01', periods=30, freq='D')
data = {
    '日付': dates,
    '売上': np.random.randint(80000, 150000, 30),
    '来店客数': np.random.randint(100, 200, 30)
}
df = pd.DataFrame(data)
df.set_index('日付', inplace=True)

# 折れ線グラフ
df['売上'].plot(kind='line', figsize=(10, 5), title='Daily Sales')
plt.ylabel('Sales (JPY)')
plt.grid(True)
plt.show()

# 棒グラフ
df['来店客数'].plot(kind='bar', figsize=(10, 5), title='Daily Visitors')
plt.ylabel('Visitors')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

# 複数の系列を同時にプロット
df.plot(kind='line', figsize=(10, 5), title='Sales and Visitors')
plt.ylabel('Value')
plt.grid(True)
plt.legend()
plt.show()

# ヒストグラム(分布を見る)
df['売上'].plot(kind='hist', bins=20, title='Sales Distribution', figsize=(8, 5))
plt.xlabel('Sales (JPY)')
plt.ylabel('Frequency')
plt.show()

# 箱ひげ図
df.plot(kind='box', figsize=(8, 5), title='Box Plot')
plt.ylabel('Value')
plt.show()

# 散布図(相関を見る)
plt.figure(figsize=(8, 5))
plt.scatter(df['来店客数'], df['売上'])
plt.xlabel('Visitors')
plt.ylabel('Sales (JPY)')
plt.title('Scatter Plot: Visitors vs Sales')
plt.grid(True)
plt.show()

可視化は、納品物のクオリティを一気に上げる。グラフ付きのレポートは、クライアントからの評価が段違いに高い。

応用:実務でよく使うパターン

実際の案件で使ってるコードを、そのまま公開する。

パターン1:売上レポートの自動生成

import pandas as pd
import numpy as np
from datetime import datetime

# データ読み込み(実際はクライアントから受け取ったファイル)
df = pd.read_csv('sales_data.csv', parse_dates=['日付'])

# 基本統計
total_sales = df['売上'].sum()
avg_sales = df['売上'].mean()
max_sales = df['売上'].max()
min_sales = df['売上'].min()

# レポート出力
report = f"""
売上レポート
生成日時: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}

【全期間サマリー】
総売上: {total_sales:,.0f}円
平均売上: {avg_sales:,.0f}円
最高売上: {max_sales:,.0f}円
最低売上: {min_sales:,.0f}円

【月別集計】
"""

# 月別集計
df['月'] = df['日付'].dt.to_period('M')
monthly = df.groupby('月')['売上'].agg(['sum', 'mean', 'count'])
report += monthly.to_string()

# レポートを保存
with open('sales_report.txt', 'w', encoding='utf-8') as f:
    f.write(report)

print("レポートを保存しました: sales_report.txt")
print(report)

このコードで、初案件の納品物を作った。たった20行のコードで、クライアントが2週間かけてた作業が終わった。

パターン2:異常値の検出

import pandas as pd
import numpy as np

# サンプルデータ
df = pd.read_csv('sales_data.csv')

# 四分位数を使った異常値検出
Q1 = df['売上'].quantile(0.25)
Q3 = df['売上'].quantile(0.75)
IQR = Q3 - Q1

# 異常値の範囲
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR

# 異常値を抽出
outliers = df[(df['売上'] < lower_bound) | (df['売上'] > upper_bound)]

print(f"正常範囲: {lower_bound:,.0f}円 ~ {upper_bound:,.0f}円")
print(f"異常値の数: {len(outliers)}件")
print("\n異常値の詳細:")
print(outliers)

# 異常値を除外したデータ
clean_data = df[(df['売上'] >= lower_bound) & (df['売上'] <= upper_bound)]
print(f"\nクリーンなデータ: {len(clean_data)}件")

異常値検出は、データの品質チェックで必須。これができると、「ちゃんとしたデータ分析者」って評価される。

Pandas学習ロードマップ:副業案件獲得まで

ここからは、Pandasを学んで副業案件を取るまでのロードマップを示す。私が実際に通った道。

ステップ1:Python基礎(1~2週間)

Pandasを学ぶ前に、Pythonの基礎は必須。といっても、難しいことは要らない。

最低限必要なPythonの知識:

  • 変数、データ型(int, float, str, list, dict)
  • 条件分岐(if文)
  • ループ(for文、while文)
  • 関数の定義と呼び出し
  • リスト内包表記(あると便利)

学習リソース:

  • Progate Python コース(無料~月980円)
  • PyQ(月3,040円~)
  • Udemy「現役シリコンバレーエンジニアが教えるPython入門」(セール時1,500円)

この段階で、簡単なプログラムが書ければOK。完璧を目指さなくていい。

ステップ2:Pandas基礎(1~2週間)

Python基礎ができたら、Pandasに集中する。

学ぶべき内容:

  • DataFrameとSeriesの理解
  • CSVファイルの読み込み・書き出し
  • データの選択とフィルタリング
  • 基本統計量の算出
  • 欠損値処理
  • groupby(グループ化と集計)

**学習リソー

:**

  • Kaggle Learn - Pandas(無料、超実践的)
  • Udemy「【世界で18万人が受講】実践 Python データサイエンス」(セール時1,500円)
  • 公式ドキュメント(英語だけど例が豊富)
  • YouTube「codexa」チャンネル(無料、日本語)

私の場合、毎日2時間勉強して、1週間で基本は理解できた。

コワーキングスペースでノートパソコンを開き、集中してコードを書く20代男性の線画イラスト

ステップ3:実践プロジェクト(1~2週間)

学んだことを使って、実際にプロジェクトを作る。これがポートフォリオになる。

作るべきプロジェクト:

  1. 売上データ分析レポート
  • Kaggleの公開データセットを使う
  • 基本統計量、月別推移、カテゴリ別集計
  • グラフを3~5個作成
  • Jupyter NotebookでまとめてGitHubに公開
  1. データクリーニングツール
  • 欠損値処理
  • 異常値検出
  • データ型の変換
  • クリーンなCSVファイルを出力
  1. 簡単なダッシュボード
  • Streamlitを使って、データを可視化するWebアプリ
  • CSVをアップロードすると自動で分析結果を表示

私のポートフォリオ例:

  • 「ECサイトの売上分析ノートブック」(GitHub)
  • 「Airbnbデータの可視化ダッシュボード」(Streamlit Cloud)

これらを作って、クラウドソーシングのプロフィールに載せた。提案の採用率が5倍になった。

ステップ4:初案件獲得(2~4週間)

ポートフォリオができたら、案件に提案する。

狙うべき案件:

  • 予算:5~15万円
  • 納期:1~2週間
  • 作業内容:データ分析レポート作成、Excelデータの集計
  • 「初心者歓迎」「丁寧に教えます」と書いてある

避けるべき案件:

  • 予算が異常に低い(3万円以下)
  • 納期が短すぎる(3日以内)
  • 要件が曖昧(「なんでもできる方」とか)
  • 機械学習モデル構築(初心者には難しい)

提案文のコツ:

お世話になります。貴社のデータ分析案件、拝見いたしました。

【提案内容】
・売上データの基本統計量分析
・月別・カテゴリ別の推移分析
・視覚的にわかりやすいグラフ作成
・分析結果レポート(PDF形式)

【使用ツール】
Python(Pandas、Matplotlib)

【過去実績】
類似案件のポートフォリオ:[GitHubリンク]
データ分析ダッシュボード:[Streamlitリンク]

【スケジュール】
ヒアリング:1日
データ分析:3~5日
レポート作成:1~2日
合計:1週間以内に納品可能

ご検討のほど、よろしくお願いいたします。

この提案文で、私は3件提案して1件採用された。

ステップ5:案件の積み重ね(2~6ヶ月)

初案件をこなしたら、徐々に案件を増やしていく。

私の実績推移:

  • 1ヶ月目:初案件1件(8万円)
  • 2ヶ月目:案件2件(16万円)
  • 3ヶ月目:案件3件+継続案件1件(28万円)
  • 4ヶ月目:継続案件2件+新規2件(35万円)
  • 5ヶ月目以降:継続案件3件で安定(月30~40万円)

重要なポイント:

  1. 最初の5件は実績作りと割り切る(単価安くてもOK)
  2. 評価を集める(4.5以上をキープ)
  3. 継続案件を狙う(納品時に次回の提案をする)
  4. ポートフォリオを随時更新

ステップ6:単価アップ(6ヶ月~)

実績ができたら、単価を上げる。

単価を上げる戦略:

  1. 専門性を出す
  • 「EC業界のデータ分析専門」
  • 「飲食店の売上分析専門」
  • 専門性があると、単価は1.5~2倍になる
  1. 付加価値を提供
  • レポートだけじゃなく、改善提案も付ける
  • ダッシュボードを作って定期的にデータを見られるようにする
  • 運用マニュアルを付ける
  1. スピードで勝負
  • 「通常1週間のところ、3日で納品できます」
  • 早く納品できる = 高単価を正当化できる
  1. 継続契約を提案
  • 「月額15万円で、月次レポート + 相談対応します」
  • クライアントは予算が立てやすい
  • こちらも収入が安定する

これらを実践して、私の平均単価は:

  • 開始時:時給4,000円
  • 3ヶ月後:時給5,500円
  • 6ヶ月後:時給7,000円
  • 現在:時給8,500円

Pandas案件の探し方

クラウドソーシング

初心者が最初に使うべきプラットフォーム。

主要サービス:

  • クラウドワークス(案件数2,500件以上)
  • ランサーズ(案件数400件以上)
  • ココナラ(スキル販売型)

クラウドソーシングのメリット:

  • 初心者でも提案できる案件が多い
  • 小規模案件から始められる
  • 実績を積みやすい

デメリット:

  • 競合が多い
  • 単価が低め
  • 手数料が高い(20%程度)

私は最初の3ヶ月はクラウドワークス中心で案件を取ってた。

副業エージェント

経験を積んだら、エージェントを使うべき。単価が圧倒的に高い。

主要エージェント:

  • レバテックフリーランス(最大手、高単価)
  • ITプロパートナーズ(週2日~、リモート案件豊富)
  • Midworks(福利厚生が充実)

エージェントのメリット:

  • 営業が不要(案件を紹介してくれる)
  • 単価が高い(月30~80万円)
  • 契約手続きを代行してくれる
  • 継続案件が多い

エージェントに登録するタイミング:

  • 実務経験半年以上
  • ポートフォリオが3つ以上
  • 週2日以上の稼働が可能

私がエージェントに登録したのは、副業開始から4ヶ月後。クラウドソーシングで8件くらい案件をこなしてから。

SNS・コミュニティ

意外と穴場なのが、SNSやコミュニティ経由の案件。

おすすめプラットフォーム:

  • Twitter(X):「#副業募集」「#Python案件」で検索
  • Qiita:技術記事を投稿して、DMで依頼が来ることも
  • connpass:勉強会で人脈を作る

私の継続案件の1つは、Twitterで知り合った人からの紹介。直接契約だから、手数料ゼロ。

深夜、自宅のデスクで継続案件の契約書にサインして安堵する表情の30代男性の線画イラスト

よくある質問(FAQ)

Q1: プログラミング未経験でもPandasは学べますか?

学べる。ただし、Pythonの基礎は先に学ぶ必要がある。

おすすめの学習順序:

  1. Pythonの基礎(1~2週間)
  2. Pandasの基礎(1~2週間)
  3. 実践プロジェクト(1~2週間)

合計1~1.5ヶ月で、初案件が取れるレベルに到達できる。

私がメンターしてる完全未経験の受講生も、2ヶ月で初案件を取ってる。

Q2: 数学が苦手でも大丈夫?

副業レベルなら、中学数学ができれば十分。

必要な数学:

  • 四則演算(足し算、引き算、掛け算、割り算)
  • 平均、中央値の理解
  • 割合(パーセンテージ)の計算
  • グラフの読み方

データ分析案件の9割は、これだけで対応できる。

機械学習を本格的にやるなら、もっと深い数学が必要になるけど、それは後から学べばいい。

Q3: どれくらいで稼げるようになりますか?

人による。でも、平均的には:

  • 学習開始から初案件まで:1~2ヶ月
  • 月5万円達成:2~4ヶ月
  • 月10万円達成:4~6ヶ月
  • 月20万円以上:6~12ヶ月

これは、毎日1~2時間学習した場合。

私の場合:

  • 学習開始:2024年9月
  • 初案件:2024年9月(1週間)
  • 月10万円:2024年10月(1ヶ月)
  • 月30万円:2025年2月(5ヶ月)

Q4: 本業が忙しくても大丈夫?

大丈夫。というか、Pandasの案件は、時間の融通が利きやすい。

理由:

  • リモートワークが多い
  • 納期に余裕がある案件が多い
  • 週末だけでも対応できる
  • 作業時間が短い(月10~20時間で月10~20万円も可能)

私の稼働時間:

  • 平日夜:1~2時間 × 5日 = 5~10時間
  • 土日:3~5時間 × 2日 = 6~10時間
  • 合計:週11~20時間

本業に支障が出たことは一度もない。

Q5: Excelマクロ(VBA)とPandasどっちがいい?

Pandasの方が圧倒的に有利。

理由:

  1. 汎用性が高い
  • Pythonは様々な分野で使える
  • VBAはExcelでしか使えない
  1. 学習リソースが豊富
  • Pythonの情報は膨大
  • VBAは情報が少なくなってきてる
  1. 将来性がある
  • Python/Pandasの需要は増え続けてる
  • VBAの需要は減ってる
  1. 案件単価が高い
  • Pandas案件:時給3,000~8,000円
  • VBA案件:時給1,500~3,000円

VBAができても悪くないけど、これから学ぶなら絶対にPandas。

Q6: 機械学習も学ぶべき?

最初は不要。Pandasだけで十分稼げる。

機械学習を学ぶタイミング:

  • Pandasで月10万円以上稼げるようになってから
  • データ分析の基礎が完璧になってから
  • より高単価な案件を狙いたいとき

実際、私は半年間Pandasだけで月30万円稼いでから、機械学習を学び始めた。

焦って機械学習に手を出すより、Pandasを極めた方が効率がいい。

Q7: Mac? Windows? どっちがいい?

どっちでもOK。ただし、開発環境はMacの方が若干楽。

私の場合:

  • 最初:Windows(会社支給のPC)
  • 今:Mac(副業収入で買った)

Windowsでも全く問題なく学習・案件対応できる。

Q8: おすすめの学習サイトは?

無料:

  • Kaggle Learn(超実践的、英語)
  • Google Colaboratory(環境構築不要)
  • YouTube codexa チャンネル(日本語、わかりやすい)

有料:

  • Udemy(セール時1,500円、コスパ最強)
  • PyQ(月3,040円~、体系的)
  • Progate(月980円、初心者向け)

私はKaggle LearnとUdemyで学んだ。合計5,000円くらい。

まとめ:次に取るべき一歩

ここまで読んでくれてありがとう。Pandasでデータ分析して副業で稼ぐ方法、理解できたんじゃないかな。

最後にもう一度、重要なポイントをまとめる:

Pandasを学ぶべき理由

  • データ分析案件が爆発的に増えてる
  • 学習コストが低い(1~2ヶ月で基礎習得)
  • 案件単価が高い(時給3,000~8,000円以上)
  • 他のスキルと組み合わせやすい

学習ロードマップ

  • ステップ1:Python基礎(1~2週間)
  • ステップ2:Pandas基礎(1~2週間)
  • ステップ3:実践プロジェクト(1~2週間)
  • ステップ4:初案件獲得(2~4週間)
  • ステップ5:案件の積み重ね(2~6ヶ月)
  • ステップ6:単価アップ(6ヶ月~)

稼げるまでの期間

  • 初案件:1~2ヶ月
  • 月10万円:4~6ヶ月
  • 月30万円:6~12ヶ月

覚えるべきスキル

  • データの読み込み(CSV、Excel)
  • 基本統計量の算出
  • 欠損値処理
  • データのフィルタリング
  • グループ化と集計
  • 相関分析
  • データ可視化

もしあなたが「副業で収入を増やしたい」「プログラミングスキルを活かしたい」「エンジニアとしてキャリアアップしたい」って思ってるなら、Pandasは最高の選択肢の一つ。

需要は高い、学習コストは低い、案件単価は高い、将来性がある。こんなに条件が揃ってるスキルは、他にない。

まずは、Pythonの基礎から始めてみてほしい。Progateでもいい、YouTubeでもいい、Udemyでもいい。とにかく、一歩を踏み出す。

その一歩が、半年後の月20万円の副業収入につながってる。

私も最初は不安だった。「本当に稼げるのか」「自分にできるのか」って。でも、やってみたら意外とできた。そして、人生が変わった。

あなたもできる。Pandasを学んで、データ分析案件を取って、副業収入を増やす。この記事が、その第一歩になれば嬉しい。

それじゃ、頑張って!

わからないことがあったら、一人で抱え込まないで。コミュニティに参加したり、メンターを見つけたり。

Pandasは、あなたのキャリアを変える力がある。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いたエンジニア

上原 玲のアバター 上原 玲 インフラエンジニア

インフラ構築に強く、AWS・GCPを用いた大規模環境の運用経験が豊富。冷静な判断と堅実な設計で、チームからの信頼が厚い。多趣味で、最近は写真撮影にハマり中。休日はカメラを片手に各地を巡る。穏やかな雰囲気で後輩にも優しい。

目次