1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【pandas初心者向け】KaggleのSpeed Datingデータセットを読み込んで、ざっくり前処理してみる

1
Last updated at Posted at 2025-07-14

【pandas初心者向け】KaggleのSpeed Datingデータセットを読み込んで、ざっくり前処理してみる

Kaggleからダウンロードしたデータに、欠損値があるか・どんな形式か・そもそもどんなカラムがあるかを確認するたびに、いちいちpandasの使い方を調べていて非効率だと感じたので、最低限のワークフローを自分用にまとめておきます。

ほぼ「pandasの使い方まとめ」ですが、今後の作業効率化のために残します。


🧱 前提

  • 筆者はPython初心者です
  • 実行環境は Jupyter Notebook
  • 使用するデータセットは、Kaggleに公開されている「Speed Dating Experiment」です

🔗 Speed Dating Dataset - Kaggle


📥 データの読み込み

pandas を使って、CSV形式のデータをDataFrameとして読み込みます。

import pandas as pd

df = pd.read_csv('Speed Dating Data.csv', encoding='latin1')

※ このデータは 'latin1' でエンコードされているため、utf-8 では読み込めません。


🔍 ファイルのエンコーディングを推測したいとき

以下のように chardet を使うと、エンコーディングを自動推測できます。

import chardet

with open('Speed Dating Data.csv', 'rb') as f:
    result = chardet.detect(f.read())
    print(f"推定エンコーディング: {result['encoding']}")
    print(f"信頼度: {result['confidence']}")

✅ データ読み込み確認

読み込めているかを簡単に確認します。

df.head()

※ Qiita上では出力結果は割愛しますが、Jupyterなら表形式で確認できます。


📊 データの概要確認

df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 8378 entries, 0 to 8377  
Columns: 195 entries, iid to amb5_3  
dtypes: float64(174), int64(13), object(8)  
memory usage: 12.5+ MB

🛠 表示設定の変更(pandas)

列が省略させたくない場合、以下の設定で表示制限を解除できます。

# 表示する行数の上限をなくす(Noneを設定)
pd.set_option('display.max_rows', None)
# 表示する列数の上限をなくす(Noneを設定)
pd.set_option('display.max_columns', None)
# 列名の省略表示を無効にする
pd.set_option('display.max_colwidth', None)
 # 表示幅の制限を解除
pd.set_option('display.width', None) 
# シーケンス項目の制限を解除
pd.set_option('display.max_seq_items', None)  

📋 カラム情報の確認

🔢 カラム名を一覧で表示

print("全てのカラム名(1行ずつ):")
for i, col in enumerate(df.columns, 1):
    print(f"{i:3d}. {col}")

print(f"\n総カラム数: {len(df.columns)}")

📈 数値カラムの要約統計量

df.describe()

→ カラムごとの平均・標準偏差・最大最小などが確認できます。


🔤 カテゴリ情報も含めた要約

df.describe(include='all')

→ オブジェクト型(カテゴリカルデータ)も含めた要約が得られます。


⚠️ 各カラムの欠損値の数を確認

df.isnull().sum()

一部抜粋:

iid            0  
id             1  
gender         0  
positin1    1846  
...

🧽 欠損値の補完例(中央値)

今回は使いませんが、補完処理の例です:

median_age = df['age'].median()
df['age'].fillna(median_age, inplace=True)

🎯 特定のカラムだけ抽出したいとき

df[['wave','attr1_1', 'sinc1_1', 'intel1_1', 'fun1_1', 'amb1_1', 'shar1_1']]

→ 必要なカラムだけを取り出して使うときに便利です。


✅ まとめ

  • pandasでのデータ確認ルーティンを固めておくと、毎回ググる時間が減る
  • describe()info()isnull().sum() あたりは頻出
  • エンコーディングや欠損値処理もセットで覚えておくと便利!

今後、さらに可視化や前処理のパターンもまとめていく予定です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?