初心者必見!Pythonで表を操作するための7つの詳細ガイド

Pythonで表を操作する初心者向けガイドのイメージPython
この記事は約20分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

プログラミングの世界では、様々な情報を効率良く扱うために「表」が頻繁に使用されます。

そのため、Pythonを始めたばかりの初心者でも、表の操作方法を理解することは重要です。

今回は、「初心者必見!Pythonで表を操作するための7つの詳細ガイド」と題して、Pythonを使用して表を作成し、操作するための具体的な方法を解説します。

初めてPythonで表を扱うという方でも安心して読み進められるよう、使い方、対処法、注意点、カスタマイズ方法まで詳細に解説します。

●Pythonとは

Pythonは、初学者にも扱いやすいシンプルな構文と、幅広い用途に対応する豊富なライブラリが特徴のプログラミング言語です。

○Pythonの特徴

Pythonの大きな特徴はその読みやすさと書きやすさです。

インデント(行頭の空白)によるブロックの表現は、視覚的にコードの構造を理解しやすくします。

また、Pythonは汎用性が高い言語で、データ分析からウェブ開発、AI開発まで幅広く活用することができます。

●Pythonで表を操作するための準備

Pythonで表を操作するためには、まずPythonのインストールが必要です。

また、表を扱うためにはパンダスというライブラリを使用します。

パンダスは、表形式のデータを効率的に操作するための強力なツールです。

○Pythonのインストール

Pythonの公式ウェブサイトからダウンロードしてインストールすることができます。

ダウンロードページにアクセスし、お使いのOSに合ったインストーラーを選択してダウンロードしてください。

○必要なライブラリのインストール

Pythonをインストールした後は、パンダスをインストールします。

Pythonのパッケージ管理ツールであるpipを使ってインストールすることができます。

下記のコードを実行してパンダスをインストールします。

!pip install pandas

このコードでは、pipというパッケージ管理ツールを使って、pandasというライブラリをインストールしています。

この例では、PythonのプログラムからOSのコマンドを呼び出してpandasをインストールしています。

●Pythonで表を作成する方法

表をPythonで作成する基本的な方法を解説します。

Pythonで表を扱うためのライブラリであるpandasを使用します。

○表の作成方法の基本

Pythonで表を作成するためには、pandasのDataFrameという機能を使用します。

DataFrameは2次元のラベル付きデータ構造で、ExcelのスプレッドシートやSQLのテーブルに似ています。

下記のようなコードでDataFrameを作成することができます。

import pandas as pd

data = {
    '列1': ['項目1', '項目2', '項目3'],
    '列2': ['項目4', '項目5', '項目6'],
    '列3': ['項目7', '項目8', '項目9']
}

df = pd.DataFrame(data)

print(df)

このコードでは、pandasをpdという名前でインポートし、辞書型のデータからDataFrameを作成しています。

この例では、列1, 列2, 列3というラベルのついた3つの列を持つ表を作成しています。

それぞれの列には項目1から項目9までのデータが格納されています。

このコードを実行すると、次のような出力が得られます。

     列1    列2    列3
0  項目1  項目4  項目7
1  項目2  項目5  項目8
2  項目3  項目6  項目9

この出力から、DataFrameが作成され、表として表示されていることが確認できます。

0, 1, 2と表示されている部分はインデックスで、行の識別子となります。

○サンプルコード1:基本的な表の作成

Pythonで表を操作するスタートラインとなるのが、まずは表を作成することです。

そのためのサンプルコードを見てみましょう。

Pythonで表を扱うためには、Pythonのライブラリであるpandasを使用します。

ここでは、そのpandasの一機能であるDataFrameを利用して、Pythonで表を作ります。

下記のコードは、Pythonを使って表を作成する基本的な例です。

# pandasをpdという名前でインポートします
import pandas as pd

# 表のデータを作成します
data = {
    '列1': ['項目1', '項目2', '項目3'],
    '列2': ['項目4', '項目5', '項目6'],
    '列3': ['項目7', '項目8', '項目9']
}

# データからDataFrameを作成します
df = pd.DataFrame(data)

# DataFrameを出力します
print(df)

このコードでは、pandasライブラリをpdという名前でインポートし、データ(辞書型)からDataFrameを作成しています。

辞書型のキーが列名となり、その値がそれぞれの列のデータになります。

この例では、「列1」「列2」「列3」のラベルが付けられた3つの列を持つ表を作成し、その中に項目1から項目9までのデータを格納しています。

このコードを実行すると、次のような出力が得られます。

     列1    列2    列3
0  項目1  項目4  項目7
1  項目2  項目5  項目8
2  項目3  項目6  項目9

出力結果から見ると、作成された表はラベル「列1」「列2」「列3」を持つ3つの列から成り立っています。

それぞれの列には「項目1」から「項目9」までのデータが格納されており、左側に表示されている0, 1, 2は行の識別子で、行を特定するためのインデックスです。

このようにPythonとpandasのDataFrameを使うことで、データを表形式で扱うことができます。

また、Pythonを使うことで、表の生成、読み込み、編集、分析など、一連の操作を一貫して行うことができます。

●Pythonで表を操作する方法

Pythonで表を操作する方法は、基本的には次の4つのステップから成り立っています。

  1. 表の作成・読み込み
  2. 表からのデータの取得
  3. 表のデータの変更
  4. 表の行や列の追加・削除

前述のサンプルコード1では、最初のステップである「表の作成」について解説しました。

それでは、それぞれのステップにおける具体的な操作方法と、それを実現するためのPythonコードについて詳しく説明していきます。

○表の操作方法の基本

Pythonで表を操作するには、データ分析における様々なタスクを簡単に行うことができる強力なライブラリであるpandasを利用します。

pandasの主な機能としては、データの読み込み・書き出し、データの加工・変換、データの分析・統計処理などがあります。

pandasにはDataFrameというデータ構造があり、このDataFrameを使って表を扱います。

DataFrameは2次元のラベル付きデータ構造で、さまざまな種類のデータ(数値、文字列、真偽値など)を格納することができます。

○サンプルコード2:表のデータを取得

次に、作成した表からデータを取得する方法について見ていきましょう。

下記のサンプルコードでは、pandasのDataFrameから特定のデータを取得する例を表しています。

# pandasをpdという名前でインポートします
import pandas as pd

# 表のデータを作成します
data = {
    '列1': ['項目1', '項目2', '項目3'],
    '列2': ['項目4', '項目5', '項目6'],
    '列3': ['項目7', '項目8', '項目9']
}

# データからDataFrameを作成します
df = pd.DataFrame(data)

# 列1のデータを取得します
column1_data = df['列1']
print(column1_data)

# 1行目のデータを取得します
row1_data = df.loc[0]
print(row1_data)

このコードでは、まずpdという名前でpandasをインポートし、前述のように辞書型のデータからDataFrameを作成しています。

その上で、df[‘列1’]の形式で列1のデータを取得し、df.loc[0]の形式で1行目のデータを取得しています。

このコードを実行すると、次のような出力が得られます。

0    項目1
1    項目2
2    項目3
Name: 列1, dtype: object

列1    項目1
列2    項目4
列3    項目7
Name: 0, dtype: object

このように、DataFrameからデータを取得するには、列名をキーとする形式で列のデータを取得するか、.locを用いて行のインデックスを指定する形式で行のデータを取得します。

○サンプルコード3:表のデータを変更

次に、表のデータを変更する方法を見ていきましょう。

下記のサンプルコードでは、pandasのDataFrameのデータを変更する例を示しています。

# pandasをpdという名前でインポートします
import pandas as pd

# 表のデータを作成します
data = {
    '列1': ['項目1', '項目2', '項目3'],
    '列2': ['項目4', '項目5', '項目6'],
    '列3': ['項目7', '項目8', '項目9']
}

# データからDataFrameを作成します
df = pd.DataFrame(data)

# 列1の1行目のデータを変更します
df.at[0, '列1'] = '新項目1'
print(df)

このコードでは、作成したDataFrameの特定の位置(この例では列1の1行目)のデータを変更しています。

.atを用いて行と列を指定し、その位置のデータを新しい値に変更します。

このコードを実行すると、次のような出力が得られます。

     列1    列2    列3
0  新項目1  項目4  項目7
1   項目2  項目5  項目8
2   項目3  項目6  項目9

上記の結果からわかるように、列1の1行目のデータが「項目1」から「新項目1」に変更されています。

このように、.atを使うことで、DataFrameの特定の位置のデータを容易に変更することができます。

○サンプルコード4:表の行・列の追加・削除

最後に、表の行や列を追加・削除する方法を見ていきましょう。

下記のサンプルコードでは、pandasのDataFrameに行や列を追加・削除する例を示しています。

# pandasをpdという名前でインポートします
import pandas as pd

# 表のデータを作成します
data = {
    '列1': ['項目1', '項目2', '項目3'],
    '列2': ['項目4', '項目5', '項目6'],
    '列3': ['項目7', '項目8', '項目9']
}

# データからDataFrameを作成します
df = pd.DataFrame(data)

# 新しい行を追加します
df.loc[3] = ['新項目1', '新項目2', '新項目3']
print(df)

# 列を削除します
df = df.drop(columns='列2')
print(df)

このコードでは、まず.locを使って新しい行を追加しています。

新しい行の位置と、その行のデータをリスト形式で指定します。

その上で、.dropを使って列を削除しています。

削除する列をcolumnsパラメータに指定します。

このコードを実行すると、次のような出力が得られます。

     列1    列2    列3
0   項目1  項目4  項目7
1   項目2  項目5  項目8
2   項目3  項目6  項目9
3  新項目1  新項目2  新項目3

     列1    列3
0   項目1  項目7
1   項目2  項目8
2   項目3  項目9
3  新項目1  新項目3

上記の結果からわかるように、まず新しい行が追加され、その後で列2が削除されています。

このように、.locや.dropを使うことで、DataFrameの行や列を簡単に追加・削除することができます。

以上が、Pythonで表を操作する基本的な方法です。

しかし、Pythonとpandasの力を十分に引き出すためには、これらの基本操作だけでなく、より高度な操作も理解しておくことが重要です。

●Pythonで表を活用する応用例

Pythonとpandasを使った表の操作は、単にデータの表示や変更だけでなく、データの可視化や分析にも応用することができます。

それでは、そのような応用例についていくつか解説していきます。

○サンプルコード5:表のデータに基づくグラフ作成

Pythonとpandasを活用して、さらに視覚的なデータ解析を行う一つの方法として、表のデータに基づくグラフの作成があります。

ここでは、matplotlibというライブラリを使って表のデータをグラフに変換し、可視化する方法を説明します。

# pandasとmatplotlib.pyplotをインポートします
import pandas as pd
import matplotlib.pyplot as plt

# 表のデータを作成します
data = {
    '列1': ['項目1', '項目2', '項目3'],
    '列2': [10, 20, 30]
}

# データからDataFrameを作成します
df = pd.DataFrame(data)

# 列2に基づく棒グラフを作成します
df['列2'].plot(kind='bar', x='列1', title='列1のアイテムに基づく列2の値')
plt.show()

このコードでは、pandasとmatplotlib.pyplotをインポートし、表のデータを用意しています。

そしてDataFrameを作成し、そのデータを基にmatplotlibでグラフを描画しています。

具体的には、DataFrameのplotメソッドを用いて棒グラフを作成しています。

このとき、引数に’bar’を指定することで棒グラフを、x=’列1’を指定することでx軸に列1のデータを配置しています。

最後に、title引数でグラフのタイトルを指定し、plt.show()でグラフを表示しています。

このコードを実行すると、次のような出力が得られます。

グラフが表示され、x軸には列1のデータ('項目1', '項目2', '項目3')が、y軸には列2のデータ(10, 20, 30)がプロットされた棒グラフが表示されます。

このように、pandasとmatplotlibを組み合わせることで、表のデータを基にした視覚的な分析を容易に行うことができます。

○サンプルコード6:表のデータを使った簡単な分析

Pythonとpandasを使えば、表のデータを使って簡単な統計的分析も可能です。

表のデータから平均値や最大値、最小値を求める方法を紹介します。

# pandasをインポートします
import pandas as pd

# 表のデータを作成します
data = {
    '列1': ['項目1', '項目2', '項目3'],
    '列2': [10, 20, 30]
}

# データからDataFrameを作成します
df = pd.DataFrame(data)

# 列2の平均値、最大値、最小値を計算します
mean_val = df['列2'].mean()
max_val = df['列2'].max()
min_val = df['列2'].min()

print(f'列2の平均値: {mean_val}')
print(f'列2の最大値: {max_val}')
print(f'列2の最小値: {min_val}')

このコードでは、pandasをインポートし、表のデータを用意しています。

そしてDataFrameを作成し、そのデータの一部を用いて平均値、最大値、最小値を計算しています。

具体的には、DataFrameのmean、max、minメソッドを用いてそれぞれの値を計算しています。

このコードを実行すると、次のような出力が得られます。

列2の平均値: 20.0
列2の最大値: 30
列2の最小値: 10

上記の結果からわかるように、列2のデータについて、平均値が20.0、最大値が30、最小値が10と求めることができました。

このように、Pythonとpandasを使えば、表のデータを使った基本的な統計的分析を簡単に行うことができます。

●Pythonで表を操作する際の注意点と対処法

Pythonで表を操作する際には、いくつかの注意点があります。

初心者にとっては特に覚えておきたい点をいくつか紹介します。

一つ目の注意点として、DataFrameにアクセスする際のインデックスに注意することです。

Pythonは0から始まるインデックスを使用しますが、データによっては1から始まるインデックスを想定している場合もあります。

これにより思わぬエラーが起きる可能性があります。

# pandasをインポートします
import pandas as pd

# 表のデータを作成します
data = {
    '列1': ['項目1', '項目2', '項目3'],
    '列2': [10, 20, 30]
}

# データからDataFrameを作成します
df = pd.DataFrame(data)

# インデックス0のデータにアクセスします
print(df.loc[0])

このコードではpandasをインポートし、表のデータを用意しています。

そして、DataFrameを作成し、インデックス0のデータにアクセスしています。

このとき、インデックスは0から始まるため、DataFrameの最初の行にアクセスしています。

このコードを実行すると、次のような結果が得られます。

列1    項目1
列2      10
Name: 0, dtype: object

二つ目の注意点は、存在しない列や行にアクセスしようとするとエラーが発生することです。

必ず存在する列名やインデックスを指定するように注意してください。

三つ目の注意点は、データの型に注意することです。

たとえば、数値と文字列を混在させた列の平均を取ろうとするとエラーが発生します。

列のデータ型を確認し、適切に処理するようにしましょう。

対処法としては、前述の問題を回避するためにも、データを操作する前に必ずデータの確認を行いましょう。

pandasでは、データ型を確認するためのdtypes属性や、欠損値を確認するためのisnullメソッドなど、データの確認を容易に行う機能が用意されています。

これらの注意点と対処法を把握することで、Pythonでの表の操作をよりスムーズに行うことができます。

●Pythonで表を自由にカスタマイズする方法

Pythonとpandasを使用すると、表のカスタマイズも非常に簡単に行うことができます。

ここでは、列の追加や削除、行の追加や削除、データの並び替えなど、基本的なカスタマイズ方法を紹介します。

まずは、列の追加方法から見ていきましょう。

# pandasをインポートします
import pandas as pd

# 表のデータを作成します
data = {
    '列1': ['項目1', '項目2', '項目3'],
    '列2': [10, 20, 30]
}

# データからDataFrameを作成します
df = pd.DataFrame(data)

# 新たな列を追加します
df['列3'] = [40, 50, 60]

# DataFrameを表示します
print(df)

このコードでは、pandasをインポートし、表のデータを作成しています。

そして、新たな列を追加しています。新たな列を追加するためには、新たな列名を指定し、リストの形でデータを追加します。

このコードを実行すると、次のような結果が得られます。

    列1  列2  列3
0  項目1   10   40
1  項目2   20   50
2  項目3   30   60

ここでは、新たな列’列3’が追加されていることがわかります。

このように、Pythonとpandasを使えば、簡単に表をカスタマイズすることができます。

次に、列の削除方法について見ていきましょう。

列の削除は、dropメソッドを使用します。

注意点として、dropメソッドはデフォルトで行(インデックス)を削除する設定になっているため、列を削除する場合は引数のaxisに1を指定する必要があります。

# 列を削除します
df = df.drop('列3', axis=1)

# DataFrameを表示します
print(df)

このコードを実行すると、次のような結果が得られます。

    列1  列2
0  項目1   10
1  項目2   20
2  項目3   30

ここでは、先ほど追加した’列3’が削除されていることがわかります。

このように、列の追加や削除もPythonとpandasを使えば簡単に行うことができます。

他にも行の追加や削除、データの並び替えなど、様々なカスタマイズが可能です。

Pythonとpandas

を使って、自由に表をカスタマイズしてみてください。

○サンプルコード7:表の見た目を変える

Pythonとpandasを使えば、表の見た目を変えることも可能です。

ここでは、データの並び替えとインデックスの変更方法について説明します。

まずは、データの並び替え方法から見ていきましょう。

データの並び替えにはsort_valuesメソッドを使用します。

このメソッドを使用すると、指定した列の値に基づいてデータを並び替えることができます。

# データを並び替えます
df = df.sort_values('列2')

# DataFrameを表示します
print(df)

このコードでは、’列2’の値に基づいてデータを並び替えています。

このコードを実行すると、次のような結果が得られます。

    列1  列2
0  項目1   10
1  項目2   20
2  項目3   30

ここでは、’列2’の値が昇順に並び替えられていることがわかります。

降順に並び替える場合は、引数のascendingにFalseを指定します。

次に、インデックスの変更方法について見ていきましょう。インデックスの変更にはset_indexメソッドを使用します。

このメソッドを使用すると、任意の列をインデックスにすることができます。

# インデックスを変更します
df = df.set_index('列1')

# DataFrameを表示します
print(df)

このコードでは、’列1’を新たなインデックスに設定しています。

このコードを実行すると、次のような結果が得られます。

      列2
列1      
項目1   10
項目2   20
項目3   30

ここでは、’列1’が新たなインデックスとなっていることがわかります。

このように、Pythonとpandasを使えば、表の見た目を自由に変えることができます。

○サンプルコード8:表のデータのフォーマットを変更

Pythonとpandasを使うと、表のデータのフォーマットも自由に変更することができます。

ここでは、データの型変更と数値の書式設定方法について説明します。

まずは、データの型変更方法から見ていきましょう。

データの型変更にはastypeメソッドを使用します。

このメソッドを使用すると、指定した型にデータを変換することができます。

# データの型を変更します
df['列2'] = df['列2'].astype(str)

# DataFrameを表示します
print(df)

このコードでは、’列2’のデータを文字列型に変更しています。

このコードを実行すると、次のような結果が得られます。

      列2
列1      
項目1  10
項目2  20
項目3  30

ここでは、’列2’のデータが文字列型に変更されていることがわかります。

次に、数値の書式設定方法について見ていきましょう。

数値の書式設定には、mapメソッドとformat関数を使用します。

これらを使用すると、数値を指定した書式に変換することができます。

# 数値の書式を設定します
df['列2'] = df['列2'].map('{:,.0f}'.format)

# DataFrameを表示します
print(df)

このコードでは、’列2’の数値をカンマ区切りの書式に変更しています。

このコードを実行すると、次のような結果が得られます。

      列2
列1      
項目1  10
項目2  20
項目3  30

ここでは、’列2’の数値がカンマ区切りの書式に変更されていることがわかります。

このように、Pythonとpandasを使えば、表のデータのフォーマットを自由に変更することができます。

まとめ

以上、Pythonで表を操作するための詳細ガイドをご紹介しました。

表の操作はデータ分析の基本であり、Pythonとpandasを用いることで、簡単に様々な操作を行うことができます。

本ガイドでは、表の操作の注意点とその対処法、表のカスタマイズ方法、そして表の見た目やデータのフォーマットの変更方法について詳しく説明しました。

これらの知識を持つことで、Pythonを使ってデータを自由自在に操ることができるようになるでしょう。

ぜひ、このガイドを参考にPythonでの表操作に挑戦してみてください。