【Python応用】Pythonとデータ操作-Pandasの概要-

Python

ここでは、Pythonにおけるデータ操作ライブラリのPandasの概要について解説しています。

この記事の対象

  • Pandasとは?を知りたい方
  • これからPandasを使用したい方
  • Data操作の概要を知りたい方
スポンサーリンク
スポンサーリンク

Pandasとは

Pandasとはデータ解析を得意とするライブラリです。CSVファイルやその他データを読み込み、目的に適した形式に変換することが可能です。

データ処理は、ライブラリがC言語で記述されているため高速です。

また、Pandas単体で使用する場合もありますが、NumPyと一緒に使用される場合が多いです。

Pandasのインストール

pipを用いてインストール場合は以下でインストール可能です。

$ pip install pandas

また、Anacondaをインストールしたら最初からインストールされているのでAnacondaをインストールするのも良いです。

Pandasを用いた使用例

DataFrameとは

Pandasで扱う基本データをDataFrame(データフレーム)と言います。二次元のリストを引数に与える特徴があります。

import pandas as pd
f = pd.DataFrame([
    [0,1,2],
    [3,4,5]
])
print(f)

DataFameの出力としてラベルも出力されるのがPandasの特徴です。

出力結果です。

   0  1  2
0  0  1  2
1  3  4  5

ちなみに一次元のデータはSeriesを用います。

import pandas as pd, numpy as np
f = pd.Series([10,11,12,13,14,15])
print(f)

出力結果はインデックス番号付きでデータ型についても表示されます。

出力結果です。

0    10
1    11
2    12
3    13
4    14
5    15
dtype: int64

データの抽出

データの抽出は辞書型にデータを格納してキーを用いることで可能です。

import pandas as pd, numpy as np
f = pd.DataFrame({
"num":[0,1,2,3,4,5],
"type":["m","f","m","f","f","m"],
"flag":["_","|","_","|","|","_"]
})
print(f["type"])

typeというものだけを抽出してみる場合の結果は以下のようになります。

0    m
1    f
2    m
3    f
4    f
5    m

次に任意のキー「type」「flag」だけを抽出する場合は以下のようになります。

import pandas as pd, numpy as np
f = pd.DataFrame({
"num":[0,1,2,3,4,5],
"type":["m","f","m","f","f","m"],
"flag":["_","|","_","|","|","_"]
})
print(f[["type","flag"]])

抽出する場合は「,」として指定するだけです。以下は結果です。

  type flag
0    m    _
1    f    |
2    m    _
3    f    |
4    f    |
5    m    _

特定のものだけを抽出する場合は「***[数値]」となります。以下は0から数えて2~3だけを抽出したものになります。

import pandas as pd, numpy as np
f = pd.DataFrame({
"num":[0,1,2,3,4,5],
"type":["m","f","m","f","f","m"],
"flag":["_","|","_","|","|","_"]
})
print(f[2:3])

出力結果は以下になります。

 flag  num type
2    _    2    m

最後に任意の数値だけ抽出したい場合を紹介します。以下は3以上の数値だけを抽出するものになります。

print(f[f.num >= 3])

結果は以下になります。

  flag  num type
3    |    3    f
4    |    4    f
5    _    5    m

データのソートと反転

ソートをする場合は「xxx.sort_values(by=”***”)」。反転する場合は「xxx.sort_values(by=”***”,ascending=False)」となります。

以下は反転させたプログラムになります。

import pandas as pd, numpy as np
f = pd.DataFrame({
"num":[0,1,2,3,4,5],
"type":["m","f","m","f","f","m"],
"flag":["_","|","_","|","|","_"]
})
print(f.sort_values(by="num",ascending=False))

結果です。

  flag  num type
5    _    5    m
4    |    4    f
3    |    3    f
2    _    2    m
1    |    1    f
0    _    0    m

最低限押さえておきたい表現

項目内容
***.sizeDataFrameの要素数を数えてくれる ex)10
***.shapeDataFrameの次元をタプルで返してくれる ex)(2,2)
***.indexDataFrameの行ラベルの抽出
***.columnsDataFrameの列ラベルの抽出
***.queryDataFrameの列の値を条件抽出
***.read_csvCSVファイルの読込み
***.read_excelExcelファイルの読込み
***.to_csvCSVファイルへの書込み
***.to_excelExcelファイルへの書込み
***.copyインデックスとデータのコピー

各リンク先では使用例を紹介しています。良かったらご参照下さい。

その他、Pandasを用いた使用例

項目内容
Pandasを用いたExcelシート名一覧を取得する方法リンク先ではPandasを用いたExcelシート名の一覧を取得する方法について解説しています。
Pandasを用いた「Excel」ファイルの読み込み操作リンク先ではExcelファイルの基本的な読み込み方法について解説しています。
Pandasを用いた複数の「xlsx」ファイルの結合方法リンク先ではPandasを用いて複数の「xlsx」ファイルを結合する方法について解説しています。
PandasとMatplotlibを用いた「xlsx」ファイルのグラフ化方法リンク先では「Pandas」と「Matplotlib」を用いて任意の「xlsx」ファイルのデータを読み込んで、グラフ化する方法について解説しています。
Pandasを用いた複数の「CSV」ファイルの結合方法リンク先では同一フォルダ内にある複数のCSVファイルを「pandas」を用いて、結合する方法について解説しています。

タイトルとURLをコピーしました