【Pandas入門】Pythonデータ解析ライブラリ「Pandas」の概要と使い方、メソッド一覧など解説のカバー画像

【Pandas入門】Pythonデータ解析ライブラリ「Pandas」の概要と使い方、メソッド一覧など解説

公開日:2025/05/03最終更新日:2025/05/05

Pythonで機械学習やデータサイエンスなどのデータ解析を行う上でCSVやExcelなどのファイルからデータの取得や解析後のデータを出力したい場合があると思います。


そんな時に役立つのがデータ解析ライブラリの「Pandas」です。


本記事は「Pandas」の概要からよく使われる関数の基本的な使い方を紹介していきます。

Pythonでの数値計算を効率化するための参考にしてみてください。


1.Python Pandasとは

Pandasの概要

Pandas(Python Data Analysis Library)は、Pythonでデータ解析を効率的に行うための機能を提供しているライブラリです。

Pandasにはデータフレーム(DataFrame)などの独自のデータ構造があり、それらを活用することでデータの読み込み・書き出し、平均値や統計値の算出、整形・可視化など、データ解析で良く行われる作業を容易に行うことができます。

特に、表形式のデータ(CSVやExcel、RDBなど)をSQLのように操作でき、処理速度も速いのが特徴です。


また、機械学習やデータサイエンスなどのデータ解析において多くの時間を費やす「データの前処理」がPandasによって効率よく行うことができることもあり、AIエンジニアやデータサイエンティストに注目されているライブラリでもあります。

Pandasライブラリを使用するメリット

Pandasライブラリを使用するメリットは以下の2つです。

  1. 複数のデータ型をデータフレームで扱える

複数のデータを扱うにあたって、Python標準のリストや辞書は処理が重くなる原因になり、他のデータ解析ライブラリであるNumPyの配列(np.array)は処理が重くなりませんが、複数のデータ型を扱うことができません。


そのため、複数の要素を持っているCSVやExcelなどのファイルの編集などは標準の機能やNumPyライブラリでは難しいです。


対して、Pandasのデータフレームは異なる型のデータを格納し、データの加工(前処理、結合など)や抽出が簡単に行えます。

  1. データの加工や解析の関数が豊富

前述でも少し触れましたが、Pandasでは以下のようなことが可能です。

・CSVやExcel、RDBなどファイルへのデータの入出力

・データ前処理

・データの結合

・部分的なデータ抽出

・ピボット(pivot)処理

・データの集約

・グループ演算

・統計処理

・回帰処理


これらの処理を組み合わせることで複雑なデータ解析も効率化が期待できます。

2.Pandasの準備

使用環境へのPandasの入れ方

Pythonで「Pandas」を使用するためにはインストールが必要です。具体的にはPythonをインストールした環境でWindowsならコマンドプロンプト、Macなどではターミナルを開いて以下のコマンドを実行することでインストールができます。

python -m pip install pandas

コマンドを実行後に以下のようなメッセージが表示され、最後に「Successfully installed pandas-{バージョン番号}」が表示されていれば、インストール完了です。

Collecting pandas

  Downloading pandas-2.2.3-cp313-cp313-win_amd64.whl.metadata (19 kB)

Requirement already satisfied: numpy>=1.26.0 in c:\users\club8\appdata\local\programs\python\python313\lib\site-packages (from pandas) (2.2.4)

Successfully installed pandas-2.2.3 python-dateutil-2.9.0.post0 pytz-2025.2 six-1.17.0 tzdata-2025.2

Pandasをプログラムのコード内で使用できるようにする方法は簡単で以下のようにPandasを使用したいPythonファイルでインポート処理を記載すれば、記載したファイル内で「pandas.{関数名}」といった形式で使用できるようになります。

import pandas

毎回「pandas」と記載するのは大変なので、以下のように「as」を使用した略称を登録するのがおすすめです。

import pandas as pd

使用環境での準備は以上になります。

Pandasの動作確認

準備が完了したら、動作確認としてインポート処理を記載したファイルを以下のコマンドで実行してみてください。

python {ファイル名}.py

問題なく実行ができれば、動作確認は完了です。

正常な準備ができていないと以下のようなエラーが発生します。

Traceback (most recent call last):

  File "C:\Users\club8\Downloads\script3.py", line 1, in <module>

    import pandas as pd

ModuleNotFoundError: No module named 'pandas'

このエラーが発生した際にはまず、Pythonファイルを実行した環境とインストールした環境が同じ環境であるか以下を実行して確認してください。

python -m pip list

実行すると以下のようにインストール済みのライブラリが一覧表示されます。

Package      Version

------------ -------

blinker      1.9.0

click        8.1.8

colorama     0.4.6

Flask        3.1.0

itsdangerous 2.2.0

Jinja2       3.1.6

MarkupSafe   3.0.2

pip          25.0.1

Werkzeug     3.1.3

ここに「pandas」がない場合はインストールができていない環境ということになるため、実行できないのは正常です。


もし、インストールされているのに実行できなかった場合は以下を行いしましょう。

  • スペルミスがないかの確認

  • 再インストール

  • Python環境の再構築

これらを行っても使用できない場合はPython公式サイトPandas公式サイトなどで不具合の発生などがないか確認してみてください。


関連記事

Pythonインストール方法(Mac・Linux・Windows)ダウンロードから実行方法まで解説


Pythonのvirtualenvとは?仮想環境の作成・管理・応用・エラー対応までわかりやすく解説

3.Pandas入門:シリーズとデータフレーム

Pandasでは、配列や辞書などのデータをシリーズ(Series)か、データフレーム (DataFrame)のオブジェクトとして扱います。

シリーズは列、データフレームは複数の列で構成され、行はインデックス(index)で管理され、インデックスには配列のように0から始まる番号、または辞書のように任意のラベルで扱うことが可能です。


それぞれの基本の使い方を見ていきましょう。

Pandasのシリーズオブジェクト

シリーズオブジェクトは配列や辞書から作成することができます。具体的には以下の通りです。

import pandas as pd

import numpy as np


# リストからシリーズの作成

series1 = pd.Series([0,1,2])

print(series1)


# Numpy配列からシリーズの作成

series2 = pd.Series(np.random.rand(3))

print(series2)


# 辞書からシリーズの作成

series3 = pd.Series({‘a’: 'boo', ’b’: 'foo', ’c’: 'woo'})

print(series3)

実行結果

# リストからシリーズの作成

0    0

1    1

2    2

dtype: int64


# Numpy配列からシリーズの作成

0    0.846147

1    0.649981

2    0.677128

dtype: float64


# 辞書からシリーズの作成

a    boo

b    foo

c    woo

dtype: object

PythonのリストやNumPy配列から作成した際にはインデックスは番号で設定され、辞書から生成する際には任意のラベルを設定して作成することができます。

Pandasのデータフレームオブジェクト

データフレームオブジェクトもリストや辞書から作成することが可能です。シリーズオブジェクトとの違いは複数の列を扱うため、行と列の設定を行えます。具体的には以下の通りです。

import pandas as pd

import numpy as np


# 多次元リストからデータフレームの作成

data_frame1 = pd.DataFrame([[0,1,2],[3,4,5],[6,7,8],[9,10,11]], index=[109,101,102,103], columns=['column1','column2','column3'])

print(data_frame1)


# NumPyの多次元配列からデータフレームの作成

data_frame2 = pd.DataFrame(np.random.rand(12).reshape(4,3), columns=['column1','column2','column3'])

print(data_frame2)


# 辞書からデータフレームの作成

data_frame3 = pd.DataFrame({'Initial':['B','F','W'], 'Name':['boo', 'foo', 'woo']}, columns=['Name','Initial'])

print(data_frame3)

実行結果

# 多次元リストからデータフレームの作成

    column1  column2  column3

109        0        1        2

101        3        4        5

102        6        7        8

103        9       10       11


# NumPyの多次元配列からデータフレームの作成

    column1   column2   column3

0  0.780556  0.251313  0.988307

1  0.286205  0.014345  0.706127

2  0.441737  0.699232  0.248251

3  0.706833  0.395403  0.762691


# 辞書からデータフレームの作成

  Name Initial

0  boo       B

1  foo       F

2  woo       W

「index」で行、「column」で列のラベルを設定して複数の行と列の形式で値を生成し、管理できるようにすることができます。

PandasでのCSVファイルからのデータフレーム作成

データフレームオブジェクトは前述のようにリストや辞書などから直接作成することもできますが、「read_csv」という関数を使用することでCSVファイルから作成することも可能です。具体的には以下の通りです。

import pandas as pd


# CSVファイルの読み込み

csv_df = pd.read_csv('sample.csv')


# 先頭10行のデータを表示

print(csv_df.head(10))

実行結果

  sepal_length   sepal_width   petal_length   petal_width    species

0           5.1           3.5            1.4           0.2      satou

1           4.9           3.0            1.4           0.2   ichinose

2           4.7           3.2            1.3           0.2     takeda

3           4.2           3.2            1.3           0.2       itou

4           4.5           3.4            1.3           0.2     fujita

5           5.5           3.2            1.4           0.2   hasunuma

6           4.8           3.5            1.3           0.2   morikubo

7           4.9           3.6            1.3           0.2     himura

8           5.2           3.2            1.3           0.2    shimura

9           4.6           3.3            1.4           0.2     tanaka

1  0.286205  0.014345  0.706127

2  0.441737  0.699232  0.248251

3  0.706833  0.395403  0.762691

このようにCSVファイルに入力されている要素を取り出すことができるので、CSVファイルでまとめてあるデータを読み込んでPandasでの解析に利用することができます。


関連記事

Pythonライブラリとは?使い方や調べ方、おすすめのライブラリなどわかりやすく解説


【Python入門】環境構築からWindowsでの始め方と初心者が作れるプログラム実践ガイド

4.Pandas入門:汎用メソッド一覧と使い方

データ参照:DataFrame.head(), DataFrame.tail()

データフレームやシリーズのデータを先頭行から指定の行数は「head()」、最終行から指定の行数は「tail()」を使用することで参照が可能です。

具体的には以下のようになります。

import pandas as pd


# CSVファイルの読み込み

csv_df = pd.read_csv('sample.csv')


# 先頭10行のデータを表示

print(csv_df.head(10))


# 最終3行のデータを表示

print(csv_df.tail(3))

実行結果

# 先頭10行のデータを表示

  sepal_length  sepal_width  petal_length  petal_width      names

0           5.1          3.5           1.4          0.2      satou

1           4.9          3.0           1.4          0.2   ichinose

2           4.7          3.2           1.3          0.2     takeda

3           4.2          3.2           1.3          0.2       itou

4           4.5          3.4           1.3          0.2     fujita

5           5.5          3.2           1.4          0.2   hasunuma

6           4.8          3.5           1.3          0.2   morikubo

7           4.9          3.6           1.3          0.2     himura

8           5.2          3.2           1.3          0.2    shimura

9           4.6          3.3           1.4          0.2     tanaka


# 最終3行のデータを表示

   sepal_length  sepal_width  petal_length  petal_width    names

13           5.6          3.1           1.4          0.2   jinnai

14           4.5          3.2           1.4          0.2    seino

15           5.8          3.0           1.3          0.2   murata

データフレームでは以下のように列の値を指定することで特定の列の要素も抽出可能です。

import pandas as pd


# CSVファイルの読み込み

csv_df = pd.read_csv('sample.csv')


# 指定列「names」の先頭5行のデータを表示

print(csv_df['names'].head(5))


# 指定列「sepal_length」の最終4行のデータを表示

print(csv_df['sepal_length'].tail(4))

実行結果

# 指定列「names」の先頭5行のデータを表示

0        satou

1     ichinose

2       takeda

3         itou

4       fujita

Name: names, dtype: object


# 指定列「sepal_length」の最終4行のデータを表示

12    5.7

13    5.6

14    4.5

15    5.8

Name: sepal_length, dtype: float64

インデックス・カラムの確認:DataFrame.index, DataFrame.columns

データフレームやシリーズに設定されているインデックスやカラムの要素を確認する際に使用するのが「index」「columns」になります。

具体的には以下の通りです。

import pandas as pd


# CSVファイルの読み込み

csv_df = pd.read_csv('sample.csv')


# 行要素の取得

print(csv_df.index)


# 列要素の取得

print(csv_df.columns)

実行結果

# 行要素の取得

RangeIndex(start=0, stop=16, step=1)


# 列要素の取得

Index(['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'names'], dtype='object')

NumPyの二次元配列形式に変換:DataFrame.to_numpy()

Pandasでは「to_numpy()」メソッドでデータフレームやシリーズを行や列の要素を省いて、Numpy配列への変換ができます。

具体的には以下の通りです。

import pandas as pd


# CSVファイルの読み込み

csv_df = pd.read_csv('sample.csv')


# NumPy配列へ変換

print(csv_df.to_numpy())

実行結果

[[5.1 3.5 1.4 0.2 ' satou']

 [4.9 3.0 1.4 0.2 ' ichinose']

 [4.7 3.2 1.3 0.2 ' takeda']

 [4.2 3.2 1.3 0.2 ' itou']

 [4.5 3.4 1.3 0.2 ' fujita']

 [5.5 3.2 1.4 0.2 ' hasunuma']

 [4.8 3.5 1.3 0.2 ' morikubo']

 [4.9 3.6 1.3 0.2 ' himura']

 [5.2 3.2 1.3 0.2 ' shimura']

 [4.6 3.3 1.4 0.2 ' tanaka']

 [4.0 3.2 1.3 0.2 ' kawaguchi']

 [5.0 3.8 1.4 0.2 ' ikeda']

 [5.7 3.9 1.3 0.2 ' takei']

 [5.6 3.1 1.4 0.2 ' jinnai']

 [4.5 3.2 1.4 0.2 ' seino']

 [5.8 3.0 1.3 0.2 ' murata']]

CSVファイルから抽出した数値データをNumPyを使用した解析を行う際などに重宝されます。

データの統計量の確認:describe()

データフレームの数値データカラムに対して、「個数」「平均」「標準偏差」「パーセンタイル値」を確認する際に使用するのが「describe()」メソッドです。

具体的には以下のようになります。

import pandas as pd


# CSVファイルの読み込み

csv_df = pd.read_csv('sample.csv')


# データの統計量確認

print(csv_df.describe())

実行結果

      sepal_length  sepal_width  petal_length  petal_width

count     16.000000    16.000000     16.000000         16.0

mean       4.937500     3.331250      1.343750          0.2

std        0.527731     0.265126      0.051235          0.0

min        4.000000     3.000000      1.300000          0.2

25%        4.575000     3.200000      1.300000          0.2

50%        4.900000     3.200000      1.300000          0.2

75%        5.275000     3.500000      1.400000          0.2

max        5.800000     3.900000      1.400000          0.2

特定の軸・要素を並べ替えて確認:sort_index(), sort_values()

Pandasでは特定の軸での並び替えを「sort_index」メソッド、特定の要素での並べ替えを「sort_values」メソッドで行うことが可能です。

それぞれの引数は以下のようになります。


【sort_index】

引数名

内容

axis

並び替えたい軸を設定(デフォルトはインデックス方向)

ascending

昇順(True)または降順(False)を指定

【sort_values】

引数名

内容

by

並べ替える基準カラムを指定

axis

並び替えたい軸を設定(デフォルトはインデックス方向)

ascending

昇順(True)または降順(False)を指定

実行例は以下のようになります。

import pandas as pd


# CSVファイルの読み込み

csv_df = pd.read_csv('sample.csv')


# 特定の軸を降順に並べ替え

print(csv_df.sort_index(axis=1, ascending=False))


# 特定の要素を昇順に並べ替え

print(csv_df.sort_values(by=’names’))

実行結果

# 特定の軸を降順に並べ替え

   sepal_width  sepal_length  petal_width  petal_length       names

0           3.5           5.1          0.2           1.4       satou

1           3.0           4.9          0.2           1.4    ichinose

2           3.2           4.7          0.2           1.3      takeda

3           3.2           4.2          0.2           1.3        itou

4           3.4           4.5          0.2           1.3      fujita

5           3.2           5.5          0.2           1.4    hasunuma

6           3.5           4.8          0.2           1.3    morikubo

7           3.6           4.9          0.2           1.3      himura

8           3.2           5.2          0.2           1.3     shimura

9           3.3           4.6          0.2           1.4      tanaka

10          3.2           4.0          0.2           1.3   kawaguchi

11          3.8           5.0          0.2           1.4       ikeda

12          3.9           5.7          0.2           1.3       takei

13          3.1           5.6          0.2           1.4      jinnai

14          3.2           4.5          0.2           1.4       seino

15          3.0           5.8          0.2           1.3      murata


# 特定の要素を昇順に並べ替え

    sepal_length  sepal_width  petal_length  petal_width       names

4            4.5          3.4           1.3          0.2      fujita

5            5.5          3.2           1.4          0.2    hasunuma

7            4.9          3.6           1.3          0.2      himura

1            4.9          3.0           1.4          0.2    ichinose

11           5.0          3.8           1.4          0.2       ikeda

3            4.2          3.2           1.3          0.2        itou

13           5.6          3.1           1.4          0.2      jinnai

10           4.0          3.2           1.3          0.2   kawaguchi

6            4.8          3.5           1.3          0.2    morikubo

15           5.8          3.0           1.3          0.2      murata

0            5.1          3.5           1.4          0.2       satou

14           4.5          3.2           1.4          0.2       seino

8            5.2          3.2           1.3          0.2     shimura

2            4.7          3.2           1.3          0.2      takeda

12           5.7          3.9           1.3          0.2       takei

9            4.6          3.3           1.4          0.2      tanaka

欠損データの削除:dropna()

データフレーム内にある欠損データを削除する際に使用するのが「dropna()」です。以下のような引数で条件を設定することができます。

引数名

内容

axis

並び替えたい軸を設定(デフォルトはインデックス方向)

how

削除の方法を「any」「 all」で指定(デフォルトは「any」)

  • any:1つ以上欠損データがある場合、対象のインデックスまたはカラムを削除

  • all:すべて欠損しているデータがある場合、対象インデックスまたはカラムを削除

実行例は以下の通りです。

import pandas as pd


# CSVファイルの読み込み

csv_df = pd.read_csv('sample.csv')


print(csv_df)


# 欠損データの削除

# 欠損が含まれるインデックスを削除

print(csv_df.dropna(how=’any’))


# すべてが欠損しているインデックスを削除

print(csv_df.dropna(how=’all’))

実行結果

# 処理前のデータ

 sepal_length  sepal_width  petal_length  petal_width      names

0           5.1          3.5           1.4          0.2      satou

1           4.9          3.0           1.4          0.2   ichinose

2           4.7          3.2           1.3          0.2     takeda

3           4.2          3.2           1.3          0.2       itou

4           NaN          NaN           NaN          NaN        NaN

5           5.8          3.0           1.3          0.2        NaN


# 欠損が含まれるインデックスを削除

   sepal_length  sepal_width  petal_length  petal_width      names

0           5.1          3.5           1.4          0.2      satou

1           4.9          3.0           1.4          0.2   ichinose

2           4.7          3.2           1.3          0.2     takeda

3           4.2          3.2           1.3          0.2       itou


# すべてが欠損しているインデックスを削除

   sepal_length  sepal_width  petal_length  petal_width      names

0           5.1          3.5           1.4          0.2      satou

1           4.9          3.0           1.4          0.2   ichinose

2           4.7          3.2           1.3          0.2     takeda

3           4.2          3.2           1.3          0.2       itou

5           5.8          3.0           1.3          0.2        NaN

欠損データの置換:fillna(), bfill(), ffill()

欠損データを任意の値に置換を行う際に使用するのが「fillna()」「bfill()」「ffill()」の3メソッドになります。

それぞれの機能は以下のようになります。

メソッド名

内容

fillna

置換値を指定して、欠損データを置換

bfill

欠損データを1つ後の要素に置換

ffill

欠損データを1つ前の要素に置換

実行例は以下の通りです。

import pandas as pd


# CSVファイルの読み込み

csv_df = pd.read_csv('sample.csv')


print(csv_df)


# 欠損データの置換

# 任意の値で置換

print(csv_df.fillna(value=5))


# 後要素で置換

print(csv_df.bfill())


# 前要素で置換

print(csv_df.ffill())

実行結果

# 処理前のデータ

  sepal_length  sepal_width  petal_length  petal_width      names

0           5.1          3.5           1.4          0.2      satou

1           4.9          3.0           1.4          0.2   ichinose

2           4.7          3.2           1.3          0.2     takeda

3           NaN          NaN           NaN          NaN        NaN

4           4.2          3.2           1.3          0.2       itou

5           5.8          3.0           1.3          0.2        NaN

6           4.2          3.2           1.3          0.2      maeda


# 任意の値で置換

   sepal_length  sepal_width  petal_length  petal_width      names

0           5.1          3.5           1.4          0.2      satou

1           4.9          3.0           1.4          0.2   ichinose

2           4.7          3.2           1.3          0.2     takeda

3           5.0          5.0           5.0          5.0          5

4           4.2          3.2           1.3          0.2       itou

5           5.8          3.0           1.3          0.2          5

6           4.2          3.2           1.3          0.2      maeda


# 後要素で置換

   sepal_length  sepal_width  petal_length  petal_width      names

0           5.1          3.5           1.4          0.2      satou

1           4.9          3.0           1.4          0.2   ichinose

2           4.7          3.2           1.3          0.2     takeda

3           4.2          3.2           1.3          0.2       itou

4           4.2          3.2           1.3          0.2       itou

5           5.8          3.0           1.3          0.2      maeda

6           4.2          3.2           1.3          0.2      maeda


# 前要素で置換

   sepal_length  sepal_width  petal_length  petal_width      names

0           5.1          3.5           1.4          0.2      satou

1           4.9          3.0           1.4          0.2   ichinose

2           4.7          3.2           1.3          0.2     takeda

3           4.7          3.2           1.3          0.2     takeda

4           4.2          3.2           1.3          0.2       itou

5           5.8          3.0           1.3          0.2       itou

6           4.2          3.2           1.3          0.2      maeda

データのグループ化:groupby()

任意の列で同じ値を持つ要素のグループ化を行う際に使用するのが「groupby()」メソッドになります。

具体的には以下の通りです。

import pandas as pd


# CSVファイルの読み込み

csv_df = pd.read_csv('sample.csv')


print(csv_df)


# 「names」列でグループ化

print(csv_df.groupby('names').head(2))

実行結果

# 処理前のデータ

   sepal_length  sepal_width  petal_length  petal_width     names

0            5.1          3.5           1.4          0.2     honda

1            4.7          3.2           1.3          0.2     honda

2            5.1          3.5           1.5          0.2     honda

3            4.9          3.0           1.4          0.2     honda

4            4.9          3.0           1.6          0.2   matsuda

5            4.5          3.4           1.3          0.2   matsuda

6            4.9          3.0           1.4          0.2   matsuda

7            4.2          3.2           1.6          0.2    suzuki

8            4.9          3.0           1.4          0.2    suzuki

9            5.1          3.5           1.5          0.2    suzuki

10           5.1          3.5           1.3          0.2    suzuki


# 「names」列でグループ化

   sepal_length  sepal_width  petal_length  petal_width     names

0           5.1          3.5           1.4          0.2     honda

1           4.7          3.2           1.3          0.2     honda

4           4.9          3.0           1.6          0.2   matsuda

5           4.5          3.4           1.3          0.2   matsuda

7           4.2          3.2           1.6          0.2    suzuki

8           4.9          3.0           1.4          0.2    suzuki

データの連結・結合:concat(), merge()

データフレームを連結するのが「concat()」メソッド、任意の列をキーとして異なるデータフレームを結合するのが「merge()」メソッドになります。

具体的な実行結果は以下の通りです。

import pandas as pd


# CSVファイルの読み込み

csv_df = pd.read_csv('sample.csv')

csv_df1 = pd.read_csv('sample1.csv')


# データの連結

print(pd.concat([csv_df, csv_df1]))


# 「sepal_length」列で結合  ※値が多くなりすぎるため、列を指定して取得

print(pd.merge(csv_df[['sepal_length', 'names']], csv_df1[['sepal_length', 'names']], on='sepal_length'))

実行結果

# 処理前のデータ

  sepal_length  sepal_width  petal_length  petal_width      names

0           5.1          3.5           1.4          0.2      satou

1           4.9          3.0           1.4          0.2   ichinose

2           4.7          3.2           1.3          0.2     takeda

3           4.2          3.2           1.3          0.2       itou

4           4.5          3.4           1.3          0.2     fujita


   sepal_length  sepal_width  petal_length  petal_width      names

0           2.8          3.5           1.4          0.2      satou

1           3.9          3.0           1.4          0.2   ichinose

2           6.9          3.2           1.3          0.2     takeda

3           NaN          NaN           NaN          NaN        NaN

4           4.2          3.2           1.3          0.2       itou

5           5.8          3.0           1.3          0.2        NaN

6           4.2          3.2           1.3          0.2      maeda


# データの連結

   sepal_length  sepal_width  petal_length  petal_width      names

0           5.1          3.5           1.4          0.2      satou

1           4.9          3.0           1.4          0.2   ichinose

2           4.7          3.2           1.3          0.2     takeda

3           4.2          3.2           1.3          0.2       itou

4           4.5          3.4           1.3          0.2     fujita

0           2.8          3.5           1.4          0.2      satou

1           3.9          3.0           1.4          0.2   ichinose

2           6.9          3.2           1.3          0.2     takeda

3           NaN          NaN           NaN          NaN        NaN

4           4.2          3.2           1.3          0.2       itou

5           5.8          3.0           1.3          0.2        NaN

6           4.2          3.2           1.3          0.2      maeda


# データの結合

   sepal_length names_x names_y

0           4.2    itou    itou

1           4.2    itou   maeda

データの読み込み・書き込み:to_csv(), read_csv(), to_excel(), read_excel()

前述ですでに触れておりますが、ファイルへの書き込みを「to_csv()」「to_excel()」メソッド、読み込みを「read_csv()」「read_excel()」で行うことができます。

それぞれの引数は以下の通りです。


【to_csv()】

引数

内容

path

書き出し先のファイルパス

columns

書き出すカラムの設定

index

行番号の書き出し指定(デフォルトは書き出す、True or False)

【to_excel()】

引数

内容

excel_writer

書き出し先のファイルパス

sheet_name

書き出すシート指定

【read_csv()】

引数

内容

filepath

読み込みたいCSVファイルのファイルパス

index_col

インデックスとしたカラム指定

usecols

読み込むカラム指定

parse_dates

Datetimeにしたいカラム指定

【read_excel()】

引数

内容

io

読み込みたいExcelファイルのファイルパス

sheet_name

読み込むシートの指定

実行例は以下のようになります。

import pandas as pd


# CSVファイルの読み込み

csv_df = pd.read_csv('sample.csv')


print(csv_df)


# 欠損データの削除後に書き出し

out_df = csv_df.dropna(how='any')


# CSV書き出し

out_df.to_csv('out_csv.csv')


# Excel書き出し

out_df.to_excel('out_excel.xlsx', sheet_name='sheet1')


# 再読み込み

# CSV

csv_df = pd.read_csv('out_csv.csv')

print(csv_df)


# Excel

excel_df = pd.read_excel('out_excel.xlsx', 'sheet1')

print(excel_df)

実行結果

# 処理前のデータ

  sepal_length  sepal_width  petal_length  petal_width      names

0           2.8          3.5           1.4          0.2      satou

1           3.9          3.0           1.4          0.2   ichinose

2           6.9          3.2           1.3          0.2     takeda

3           NaN          NaN           NaN          NaN        NaN

4           4.2          3.2           1.3          0.2       itou

5           5.8          3.0           1.3          0.2        NaN

6           4.2          3.2           1.3          0.2      maeda


# CSV

   Unnamed: 0  sepal_length  sepal_width  petal_length  petal_width      names

0           0           2.8          3.5           1.4          0.2      satou

1           1           3.9          3.0           1.4          0.2   ichinose

2           2           6.9          3.2           1.3          0.2     takeda

3           4           4.2          3.2           1.3          0.2       itou

4           6           4.2          3.2           1.3          0.2      maeda


# Excel

   Unnamed: 0  sepal_length  sepal_width  petal_length  petal_width      names

0           0           2.8          3.5           1.4          0.2      satou

1           1           3.9          3.0           1.4          0.2   ichinose

2           2           6.9          3.2           1.3          0.2     takeda

3           4           4.2          3.2           1.3          0.2       itou

4           6           4.2          3.2           1.3          0.2      maeda


関連記事

Python配列完全ガイド|初期化・追加・操作・要素数・二次元化から配列操作・連想配列まで徹底解説

5.まとめ

本記事はPythonのデータ解析ライブラリ「Pandas」の概要と関数の使用例について紹介していきました。データ解析を行う上で複数のデータ型で管理している某たいなデータに対して、加工や整理、出力などさまざまな処理を行う際の参考にしていただければと思います。


データサイエンスや機械学習ではデータをExcelなどで管理し、他の作業で共有することもあるため、同じような形式で管理可能なPandasライブラリは複数の場面で重宝されるでしょう。Numpyなどの他ライブラリとの組み合わせも考えながら、学習を進めてみてください。


本記事が皆様にとって少しでもお役に立てますと幸いです。


フリーランスボード」は、数多くのフリーランスエージェントが掲載するITフリーランスエンジニア・ITフリーランス向けの案件・求人を一括検索できるサイトです。


開発環境、職種、単価、稼働形態、稼働日数など様々な条件から、あなたに最適なフリーランス案件・求人を簡単に見つけることができます。

単価アップを目指す方や、自分の得意なスキルを活かせる案件に参画したい方は、ぜひ「フリーランスボード」をご利用ください。


自身に最適なフリーランスエージェントを探したい方はこちらよりご確認いただけます。

無料で登録したらスカウトを待つだけ フリーランスの新しい仕事探しを始めよう

フルリモート案件を 無料登録した方限定で配信中

目次

1.Python Pandasとは

Pandasの概要

Pandasライブラリを使用するメリット

2.Pandasの準備

使用環境へのPandasの入れ方

Pandasの動作確認

3.Pandas入門:シリーズとデータフレーム

Pandasのシリーズオブジェクト

Pandasのデータフレームオブジェクト

PandasでのCSVファイルからのデータフレーム作成

4.Pandas入門:汎用メソッド一覧と使い方

データ参照:DataFrame.head(), DataFrame.tail()

インデックス・カラムの確認:DataFrame.index, DataFrame.columns

NumPyの二次元配列形式に変換:DataFrame.to_numpy()

データの統計量の確認:describe()

特定の軸・要素を並べ替えて確認:sort_index(), sort_values()

欠損データの削除:dropna()

欠損データの置換:fillna(), bfill(), ffill()

データのグループ化:groupby()

データの連結・結合:concat(), merge()

データの読み込み・書き込み:to_csv(), read_csv(), to_excel(), read_excel()

5.まとめ