Pandasでinfo()を使ってDataFrameの構造を確認する方法
生徒
「info()を使ってDataFrameの構造を確認する方法をPythonで学びたいです。コードを動かしながら理解できますか?」
先生
「できます。Pandasは、説明だけでなく、サンプルコード、入力データ、実行結果、エラーの確認をセットで見ると理解しやすくなります。」
生徒
「実務データで使うときの注意点も知りたいです。」
先生
「では、info()を使ってDataFrameの構造を確認する方法を小さなコードから試し、最後に検証と保守しやすい書き方まで見ていきましょう。」
1. info()を使ってDataFrameの構造を確認する方法をPythonで学ぶ前に整理する前提知識
info()を使ってDataFrameの構造を確認する方法を学ぶときは、まず目的を整理します。Pandasでは、処理そのものだけでなく、どんなデータを入力し、どんな形で結果を確認するかが重要です。
この記事で意識したいキーワードは、DataFrame、Series、loc、query、groupby、欠損値、CSVです。Pythonのデータ分析では、コードが短くても、型、shape、列名、欠損値、保存形式を見落とすと結果がずれることがあります。
| 確認項目 | 見るポイント |
|---|---|
| 入力データ | 行数、列名、shape、データ型、欠損値を確認する |
| 処理内容 | 抽出、集計、変換、描画のどこを行っているか分ける |
| 出力結果 | 表、配列、グラフ、保存ファイルのどれを確認するか決める |
2. info()を使ってDataFrameの構造を確認する方法を最小構成で試すPythonサンプルコード
まずは、info()を使ってDataFrameの構造を確認する方法を最小コードで確認します。いきなり大きなCSVや業務データを使うのではなく、小さなデータを自分で作ると、処理の意味を追いやすくなります。
PandasでDataFrameを作って基本操作を確認するコード
import pandas as pd
df = pd.DataFrame({
"name": ["Aki", "Mina", "Sora"],
"score": [82, 74, 91],
"team": ["A", "B", "A"],
})
print(df.head())
print(df.dtypes)
DataFrameの先頭行と列ごとの型を確認できます。
実行したら、出力された値をそのまま眺めるだけでなく、入力データを1つ変更して結果がどう変わるかを確認しましょう。
3. データ型・shape・列名を確認して入力データを整える
Pythonのデータ処理では、入力データの状態がとても重要です。列名、データ型、shape、欠損値を確認しないまま処理すると、エラーが出なくても間違った結果になることがあります。
locとqueryで条件抽出するコード
high_score = df.loc[df["score"] >= 80, ["name", "score"]]
team_a = df.query("team == 'A'")
print(high_score)
print(team_a)
この段階では、処理を速く書くことよりも、想定したデータ構造になっているかを見ることが大切です。実務ではファイルの列順や型が変わることもあるため、確認コードを残しておくと安心です。
- 列名やshapeをprintしてから処理する
- 数値列と文字列列を区別する
- 欠損値や重複が結果へ影響しないか確認する
4. info()を使ってDataFrameの構造を確認する方法で起きやすいエラーと切り分け方
info()を使ってDataFrameの構造を確認する方法でエラーが出る場合は、コード全体を疑うのではなく、入力データ、型、shape、列名、保存先を分けて確認します。特にPandasでは列名違い、NumPyでは次元違い、可視化ではx軸とy軸の件数違いがよくあります。
必要な列があるか確認するコード
required = {"name", "score", "team"}
if not required.issubset(df.columns):
raise ValueError("必要な列が不足しています")
このような確認コードを先に入れておくと、処理の途中で問題を見つけやすくなります。エラーが起きた場所だけでなく、その前のデータ状態を見ることが大切です。
5. 実務データに近いPythonコードへ発展させる
基本が理解できたら、次は実務データに近いコードへ広げます。info()を使ってDataFrameの構造を確認する方法は、単体の処理だけでなく、前処理、検証、出力までつなげると実務で使いやすくなります。
sort_valuesで並び替えるコード
ranked = df.sort_values("score", ascending=False).reset_index(drop=True)
print(ranked)
発展コードでは、あとから条件を変更しやすいように、変数名や処理の単位を分けています。分析や集計では、処理を1行に詰め込むよりも、途中結果を確認できる書き方が安全です。
6. 検証コード・集計結果・テストで品質を確認する
info()を使ってDataFrameの構造を確認する方法を使ったあとは、処理結果が正しいかを確認します。Pythonでは、実行できたことと、結果が正しいことは別です。件数、合計、最大値、欠損値、保存ファイルを確認しましょう。
python sample.py
python -m pip install numpy pandas
python -m pytest
ライブラリを使う場合は、実行環境も確認します。ローカル環境、Jupyter Notebook、サーバー環境でバージョンが違うと、同じコードでも動きが変わることがあります。
| 検証方法 | 具体例 |
|---|---|
| 件数確認 | 処理前後の行数やshapeを比較する |
| 値の確認 | 合計、平均、最大値、欠損数を確認する |
| 再実行 | 同じコードをもう一度動かして結果が安定するか見る |
7. info()を使ってDataFrameの構造を確認する方法を読みやすく保守する設計の考え方
保守しやすいPythonコードにするには、info()を使ってDataFrameの構造を確認する方法の処理を一つの長いセルや関数に詰め込みすぎないことが大切です。読み込み、前処理、計算、検証、出力を分けると、後から条件変更しやすくなります。
- 入力データを読み込む処理を分ける
- 欠損値や型を整える処理を分ける
- 集計や変換の処理を分ける
- 結果確認や保存処理を分ける
実務では、今日だけ動くコードよりも、1か月後に見ても意味が分かるコードが重要です。コメントを増やすだけでなく、変数名と処理の分割で意図を伝えましょう。
8. 復習用の変更課題と次に試すPythonコード
最後に、info()を使ってDataFrameの構造を確認する方法を自分で変更して復習しましょう。コードを写すだけで終わると、入力が変わったときに対応できません。値、列名、件数、保存先を変えて確認することが大切です。
- サンプルデータの件数を増やして実行する
- 欠損値や異常値を追加して結果を見る
- 列名やshapeが違う場合のエラーを確認する
- 結果をCSVや画像として保存して確認する
ここまで確認できれば、info()を使ってDataFrameの構造を確認する方法は単なる知識ではなく、自分のデータで使えるPythonの実装パターンとして身につきます。
まとめ
info()を使ってDataFrameの構造を確認する方法を理解するには、Pandasの用語だけでなく、入力データ、コード、実行結果、エラー確認をセットで振り返ることが大切です。関連キーワードは、DataFrame、Series、loc、query、groupby、欠損値、CSVです。
記事1では、前提知識、最小コード、入力データの確認、エラーの切り分け、実務データに近いコード、検証方法まで確認しました。復習するときは、サンプルコードの値や列名を変えて、結果がどう変わるかを見てください。
もう一度確認したいPythonコード
import pandas as pd
df = pd.DataFrame({
"name": ["Aki", "Mina", "Sora"],
"score": [82, 74, 91],
"team": ["A", "B", "A"],
})
print(df.head())
print(df.dtypes)
DataFrameの先頭行と列ごとの型を確認できます。
生徒
「info()を使ってDataFrameの構造を確認する方法は、コードだけでなくデータの状態も見る必要があるんですね。」
先生
「その通りです。Pythonのデータ処理では、入力データの確認が結果の正しさにつながります。」
生徒
「次は欠損値や型違いのデータも入れて、結果がどう変わるか試してみます。」
先生
「良い進め方です。小さく試してから実務データへ広げると、安全に理解できます。」