はじめに
Pythonで表を扱う結論は、Python標準のlistやdictで小さく試し、実務寄りのデータ操作ではpandasのDataFrameに移すことです。その流れなら、プログラミング初心者でも表の作成、取得、変更、集計、カスタマイズを同じ考え方で整理できます。
- Python 3.12
- pandas 2.2 / matplotlib 3.8
- Jupyter Notebook または Google Colab 相当のノートブック環境
公式ドキュメントによれば、Pythonは読みやすい構文と高水準のデータ構造を備えた言語です。表を扱う場面では、Python公式チュートリアルで基礎文法を確認し、pandas.DataFrame公式リファレンスでDataFrameの使い方を照合すると理解が安定します。
そのため、表の作り方だけを覚えるより、列名、行番号、データ型、欠損値、出力形式を一緒に確認するほうが現実的です。注意点と対処法を早い段階で押さえると、Pythonのデータ操作で起きやすいエラーを切り分けやすくなります。
- Pythonとpandasで表を作成する基本構造
loc、at、dropを使ったデータ操作- グラフ化、集計、並び替えに使うメソッドの使い方
- プログラミング初心者がつまずきやすい注意点と対処法
- 列追加、型変換、書式設定による表のカスタマイズ
Pythonとは
Pythonは、短いコードで処理の意図を表しやすい汎用プログラミング言語です。一般にif、for、def、importなどの構文が読みやすく、プログラミング初心者が表のデータ操作へ進む入口として選ばれます。
Pythonの特徴
Pythonの特徴は、インデントで処理ブロックを表す点と、外部ライブラリを組み合わせやすい点にあります。その構文は{}ではなく空白で階層を示すため、表を作る処理、読み込む処理、分析する処理の境界が見えやすくなるのが基本です。
一方、インデントが崩れるとIndentationErrorが発生するため、コピーしたコードを実行するときは空白の数をそろえる必要があるのが基本です。Pythonで表を扱う場合も、DataFrameの前にlist、dict、str、int、floatなどの基本型を把握しておくと読み解きやすいです。
💡 Tips: pandasはPython本体ではなく外部ライブラリです。pipで追加し、コード内ではimport pandas as pdとして読み込む形が一般的だと整理できます。
これにより、表の列をSeriesとして扱ったり、複数列をDataFrameとしてまとめたりできるのが目安です。Python単体の文法とpandasの使い方を分けて考えると、エラーの原因が言語側かライブラリ側か判断しやすくなります。
Pythonで表を操作するための準備
Pythonで表を操作する準備は、処理系の導入、ライブラリの追加、作業場所の選択に分けると理解しやすいです。そのため、ローカルPCでpythonコマンドを使う場合と、ノートブックでセルを実行する場合の違いも押さえておきますし、ここがポイントです。
| 作業 | 使うもの | 確認する点 | 注意点 |
|---|---|---|---|
| Python導入 | python | バージョン | 古い環境では構文差が出る |
| pandas導入 | pip | pandasの有無 | 仮想環境の違いに注意 |
| 表の作成 | DataFrame | 列名と行数 | 列ごとの要素数をそろえる |
| 取得 | loc | 行ラベル | 0始まりを誤解しない |
| 変更 | at | 行と列 | 存在しない列名を避ける |
| 削除 | drop | 行か列か | columnsを明示する |
| 集計 | mean | 数値列 | 文字列混在に注意 |
| 並び替え | sort_values | 基準列 | 昇順と降順を確認 |
Pythonのインストール
Pythonは公式サイトから入手でき、Windows、macOS、Linuxで利用できます。一般的に、インストール後は端末でpython --versionまたはpython3 --versionを実行し、想定したバージョンが返るか確認します。
ただし、OSによってはpythonとpython3の向き先が異なる場合があるのがポイントです。このとき、プログラミング初心者はエディタの実行ボタンだけで判断せず、端末のバージョン表示とエディタの実行環境をそろえるのが対処法になるのが目安です。
必要なライブラリのインストール
Pythonの表形式のデータ操作にはpandasを使います。ノートブック環境では先頭に!を付けてシェルコマンドを呼び出す書き方が使われることがあるのが一般的です。
結果: 期待される出力は、pandasと依存パッケージのインストール処理が進み、最後に成功または既に導入済みである旨が表示される形です。
このコードはPython文法ではなく、ノートブックからpipを呼び出す書き方です。通常のターミナルでは!を外してpip install pandasと入力する使い方になります。
python -m pip install pandasのように実行する処理系を明示すると、対処法として扱いやすくなるのが現実的です。同様に、グラフ化を扱う応用例ではmatplotlibも利用します。既に導入済みの環境では再インストールは不要ですが、ModuleNotFoundErrorが出た場合は不足しているライブラリ名を確認します。
Pythonで表を作成する方法
Pythonで表を作成するときは、列名をキー、列の中身をリストにしたdictからDataFrameを作る方法が扱いやすいです。この形なら、表の列構造をコード上で見渡しやすく、データ操作の出発点を明確にできると整理できるのが一般的です。
表の作成方法の基本
DataFrameは2次元のラベル付きデータ構造で、行と列を持つ表として扱えます。そのため、ExcelのシートやSQLのテーブルに近い感覚でデータを確認できます。
結果: 期待される出力は、列1、列2、列3を持つ3行の表です。
このコードでは、import pandas as pdでpandasを短い名前にし、pd.DataFrameへ辞書を渡しています。辞書のキーが列名になり、各リストの同じ位置にある値が同じ行として並びます。
結果: この表示例では、左端の0、1、2が行インデックスで、右側が列ごとの値になると理解できるのが現実的です。
このとき、列ごとのリストの長さが異なるとValueErrorの原因になります。表の作成時は、列名だけでなく各列の件数もそろっているか確認するのが注意点です。
サンプルコード1:基本的な表の作成
サンプルとして、同じ表をコメント付きで書くと処理の流れが追いやすくなります。プログラミング初心者は、コメントを読みながらdata、df、printの役割を分けて覚えるとよいでしょう。
結果: 期待される出力は、3列3行のDataFrameが整形されたテキストとして表示される形です。
そのコードでは、dataが元データ、dfが表形式に変換されたデータです。Pythonで表を作る使い方では、元データの形と変換後の形を分けて読むと、後から列追加や集計へ進みやすくなります。
結果: この出力例では、各列にobject相当の文字列データが並び、行番号で各レコードを識別できます。
これらの表示から、DataFrameが列ラベルと行インデックスを持つことが分かりますし、ここがポイントです。一方、画面に見える見た目と内部のデータ型は別なので、集計前にはdtypesで型を確認すると安全です。
Pythonで表を操作する方法
Pythonで表を操作する流れは、読み込み、取得、変更、追加、削除に分けると整理できると整理できます。ただし、作業名を暗記するより、DataFrameのどの行と列を対象にしているかを常に確認するほうが実用的です。
表の操作方法の基本
pandasでは、列を取り出すときにdf['列名']、行を取り出すときにdf.loc[行ラベル]を使えます。位置番号で扱いたい場合はilocもありますが、ラベル名を使うlocのほうが読み間違いを減らせますが、これは押さえたい点です。
一方、単一セルを書き換える場合はatが簡潔です。複数行の条件抽出にはqueryや真偽値のマスクも使えますが、基礎段階では列取得、行取得、セル変更、行列の追加削除から押さえるとよいでしょう。
サンプルコード2:表のデータを取得
Pythonで作成済みの表から必要な列や行を取り出すには、列名と行ラベルを使います。その操作はデータ操作の入口であり、後の集計やグラフ化にもつながりますが、これは押さえたい点です。
結果: 期待される出力は、最初に列1のSeries、続いてインデックス0の行データが表示される形です。
このコードでは、df['列1']が列方向の取得、df.loc[0]が行方向の取得を担います。列と行の取り方を分けて覚えると、表の一部だけを確認したい場面で迷いにくくなります。
結果: この出力例では、列取得も行取得もSeriesとして表示され、末尾に名前とdtypeが示されますし、これが一つの目安です。
その表示に含まれるdtype: objectは、文字列などを含む列でよく見られる型です。数値計算を行う列では、int64やfloat64になっているかを確認すると、対処法を選びやすくなります。
サンプルコード3:表のデータを変更
Pythonで表の一部を書き換えるには、対象の行と列を明示します。このとき、atは単一セルの変更に向いた使い方で、読み手にも変更範囲が伝わりやすいです。
結果: 期待される出力は、列1のインデックス0だけが新項目1へ置き換わった表です。
このコードでは、df.at[0, '列1']が変更先を表し、右辺の文字列が新しい値になります。存在しない列名を使うと意図しない列追加やエラーにつながるため、変更前にdf.columnsを確認するのも注意点です。
結果: この出力例では、1行目の列1だけが変わり、他のセルは元の値を保っています。
そのため、単一セルの修正ではat、範囲をまとめて変える場面ではlocを使い分けると整理しやすいです。Pythonの表操作では、変更範囲が広いほどバックアップや元データの保持も考える必要があると覚えるとよいでしょう。
サンプルコード4:表の行・列の追加・削除
行を追加するときは新しいインデックスへ値のリストを代入し、列を削除するときはdropを使いると理解できます。ただし、pandasのdropは行削除にも使われるため、列削除ではcolumnsを明示するほうが読みやすいです。
結果: 期待される出力は、行が1件増えた表の後に、列2を除いた表が続く形です。
このコードでは、df.loc[3]に3列分の値を渡して新しい行を作っています。その後、df.drop(columns='列2')で列を取り除き、戻り値をdfへ再代入しています。
結果: この出力例では、前半で新しい行が追加され、後半で列2が消えた状態を確認できると考えられますし、これが一つの目安です。
これらの操作で特に押さえたいのは、追加する値の数と列数を合わせることです。一方、削除では元の表を残したい場合にdf2 = df.drop(...)のように別名へ入れると、戻せない変更を避けられます。
Pythonで表を活用する応用例
Pythonで表を作成、取得、変更できるようになると、集計やグラフ化へ処理を広げられます。表のデータ操作は、値を見つけるだけでなく、傾向を把握し、説明しやすい形へ変えるためにも使われますが、覚えておくと役立つでしょう。
サンプルコード5:表のデータに基づくグラフ作成
Pythonの表に数値列がある場合、matplotlibと組み合わせて棒グラフを描けますが、覚えておくと役立つでしょう。Pythonでグラフを作る使い方を知っておくと、集計結果を文章だけで説明する負担が減ります。
結果: 期待される表示は、列2の10、20、30を高さとして持つ棒グラフです。
このコードでは、plotのkind='bar'で棒グラフを選び、titleでグラフ名を付けています。ラベルを列名から使いたい場合は、df.set_index('列1')を組み合わせると見た目を調整しやすくなります。
結果: この表示例は画像そのものではなく、期待されるグラフ内容を文章で表したものです。
ただし、日本語タイトルや軸ラベルは環境によって文字化けする場合があると言えるでしょう。その対処法として、日本語フォントを設定する、英数字のラベルにする、または環境ごとのフォント設定を確認する方法があると覚えるとよいでしょう。
サンプルコード6:表のデータを使った簡単な分析
Pythonで数値列がある表では、平均、最大、最小を短いコードで求められます。こうした集計は、データ操作の結果を確認するための小さな分析として使えるのが基本です。
結果: 期待される出力は、平均値20.0、最大値30、最小値10が行ごとに表示される形です。
このコードでは、mean、max、minが数値列に対して計算を行います。列に文字列が混ざっていると計算できない場合があるため、集計前にdf['列2'].dtypeを確認するとよいでしょう。
結果: この出力例では、列2の3件の数値から基本統計量が算出されています。
Pythonで表を操作する際の注意点と対処法
Pythonで表を操作する際の注意点は、インデックス、列名、データ型、欠損値の扱いに集約できるのが目安です。対処法は難しいものではなく、操作前にhead、columns、dtypes、isnullで状態を確認することです。
プログラミング初心者がつまずきやすいのは、画面上の1行目とpandasのインデックス0を混同する場面です。そのため、locでラベルを使うのか、ilocで位置を使うのかを分けて考えますし、ここを基本と考えるとよいでしょう。
結果: 期待される出力は、インデックス0に対応する最初の行がSeriesとして表示される形です。
このコードでは、df.loc[0]が行ラベル0を探しています。標準の連番インデックスでは最初の行に当たりますが、set_index後は同じ意味にならない場合があります。
結果: この出力例では、列1と列2の値が同じ行として取り出されているのがポイントです。
存在しない列にアクセスするとKeyErrorが発生すると考えられます。この対処法として、処理前にprint(df.columns)で列名を確認し、全角半角、余分な空白、表記ゆれを取り除く流れが有効です。
データ型の注意点も見落とせません。たとえば数値のつもりでもobjectになっている列では、astype(int)やpd.to_numericで変換してから集計する必要があります。
ただし、型変換では変換できない文字列が混ざることがあると言えるでしょう。その場合はerrors='coerce'を使って不正値をNaNにし、isnullで件数を確認する方法が対処法になるのが現実的です。
こうした確認を入れると、Pythonの表操作は読み込み時点の問題と加工時点の問題を切り分けやすくなります。注意点を後回しにしないことが、データ操作を安定させる近道だと言えるでしょう。
Pythonで表を自由にカスタマイズする方法
Pythonとpandasを使うと、表の列追加、列削除、並び替え、インデックス変更、型変換、表示形式の変更まで一貫して扱えます。カスタマイズは見た目だけでなく、後続の分析や出力に合わせてデータ構造を整える作業でもあると整理できるのが基本です。
具体的には、列を増やすならdf['新列']へ値を代入し、不要な列はdropで除外します。並び順はsort_values、行ラベルはset_index、型はastypeで変えられます。
結果: 期待される出力は、既存の列1と列2に加えて、列3が追加された表です。
このコードでは、新しい列名を角括弧で示し、同じ行数のリストを代入しています。行数が合わない場合はValueErrorになるため、カスタマイズ時の注意点として件数の一致を確認します。
結果: この出力例では、右端に列3が追加され、各行へ40、50、60が入っていると理解できるのが目安です。
その列が不要になった場合は、dropで削除できます。Pythonのデータ操作では、削除後に元の列を参照するコードが残っていないかも確認します。
結果: 期待される出力は、列3が除外され、列1と列2だけが残った表です。
この例ではaxis=1で列方向を示していると覚えるとよいでしょう。読みやすさを優先するなら、df.drop(columns='列3')のように書く方法もあるのがポイントです。
結果: この出力例では、追加した列3が消え、元の2列構成に戻っています。
これらの列追加と列削除は、表の形を変える基本的なカスタマイズです。一方、分析に使う表では削除よりも別の変数へ保存するほうが、処理を戻しやすくなると考えられます。
サンプルコード7:表の見た目を変える
表の見た目を変える代表的な操作には、並び替えとインデックス変更があるのが一般的です。並び替えは値の大小を読みやすくし、インデックス変更は行の意味を明確にします。
基本的に、並び替えにはsort_valuesを使いると言えるでしょう。昇順なら既定値のままでよく、降順にしたい場合はascending=Falseを加えます。
結果: 期待される出力は、列2の値が小さい順に並んだ表です。
このコードでは、列2を基準に行全体が並び替わりますし、ここがポイントです。単に列2だけが動くのではなく、同じ行にある列1の値も一緒に移動する点が注意点です。
結果: この出力例では、元のデータがすでに昇順のため表示順は変わらない想定です。
逆に降順へ変えたい場合は、df.sort_values('列2', ascending=False)と書きますし、ここを基本と考えるとよいでしょう。並び替え後に元のインデックスが残ることが気になる場合は、reset_index(drop=True)を組み合わせる使い方もあります。
結果: 期待される出力は、列1の値が行インデックスになり、表示上は左端に移った表です。
このコードでは、set_indexで列1をインデックスへ移しています。商品名、日付、IDのように行を識別できる列がある場合、表の読み取りがしやすくなるのが基本です。
結果: この出力例では、列1が通常の列ではなくインデックスとして表示されているのが現実的です。
ただし、インデックスにした列は通常の列取得とは扱いが変わります。そのため、再び列として扱いたいときはreset_indexで戻す対処法を覚えておくと安心です。
サンプルコード8:表のデータのフォーマットを変更
表のフォーマット変更では、型変換と書式設定を分けて考えますし、ここがポイントです。型変換は計算や比較のための内部処理、書式設定は表示や出力のためのカスタマイズです。
データ型を変えるにはastypeを使います。数値列を文字列に変えると、見た目は似ていても平均などの計算対象ではなくなる点に注意すると整理できます。
結果: 期待される出力は、見た目上は同じ値が並びますが、列2の内部型が文字列に変わった表です。
このコードでは、astype(str)によって列2の値を文字列として扱いるのが目安です。数値のまま計算したい場合は、書式設定を最後に回すのが基本です。
結果: この出力例では、表示上の値は10、20、30のままですが、内部では文字列として扱われる想定です。
一方、数値の見た目だけを整えたい場合は、mapとformatを組み合わせます。桁区切りや小数点以下の表示を整えると、CSV出力やレポート用の表で読みやすくなります。
結果: 期待される出力は、列2の値が小数なしの文字列表現へ変換された表です。
このコードは、列2が数値のまま残っている場合に適しているのがポイントです。すでにastype(str)で文字列化していると書式設定が失敗するため、処理順序が注意点になると理解できます。
結果: この出力例では値が3桁未満のためカンマは付きませんが、1000なら1,000のような表示になります。
使い分けると、計算前は数値型、表示直前は文字列フォーマットという流れが扱いやすいです。Pythonで表をカスタマイズする際は、見た目の変更が後続のデータ操作に影響しないか確認するのが一般的です。
まとめ
Pythonで表のデータ操作を進めるなら、DataFrameの作成、列と行の取得、セル変更、行列の追加削除を順に押さえると理解しやすくなります。表の使い方が固まると、集計やグラフ化、フォーマット変更へ自然に広げられますが、これは押さえたい点です。
その一方で、注意点としてインデックスの意味、列名の表記、データ型、欠損値を軽く扱わないことが大切です。エラーが出たときの対処法は、headで中身を見て、columnsで列名を確認し、dtypesで型を調べる流れになるのが現実的です。
これらの操作を組み合わせると、プログラミング初心者でもPythonの表処理を小さな作業に分解できます。最初は少量のデータで動きを確認し、必要に応じてカスタマイズを足していく方法が実用的だと言えるでしょう。
より広いPython活用へ進む場合は、Pythonアプリ化の手順、折れ線グラフ作成、機械学習の基礎も合わせて読むと、表で整えたデータの使い道を広げられます。改行制御はPythonの出力整形、自動化はウィンドウ操作の自動化が関連すると整理できると覚えるとよいでしょう。
関連記事
- Python初心者のための完全ガイド!アプリ化の10ステップ
- Pythonで実現!ウィンドウ操作の自動化15選
- Pythonで折れ線グラフ作成の完全ガイド10選
- Pythonで改行あり・なしを制御する方法と応用例10選
- 10ステップで学ぶ!Pythonと機械学習初心者向け完全ガイド
※本記事は実在のエンジニア複数名で構成される Japanシーモア編集部が、AI支援を活用して作成・校正・公開しています。


