ここでは、Pythonにおけるデータ操作ライブラリのPandasの概要について解説しています。
この記事の対象
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
最低限押さえておきたい表現
項目 | 内容 |
***.size | DataFrameの要素数を数えてくれる ex)10 |
***.shape | DataFrameの次元をタプルで返してくれる ex)(2,2) |
***.index | DataFrameの行ラベルの抽出 |
***.columns | DataFrameの列ラベルの抽出 |
***.query | DataFrameの列の値を条件抽出 |
***.read_csv | CSVファイルの読込み |
***.read_excel | Excelファイルの読込み |
***.to_csv | CSVファイルへの書込み |
***.to_excel | Excelファイルへの書込み |
***.copy | インデックスとデータのコピー |
各リンク先では使用例を紹介しています。良かったらご参照下さい。
その他、Pandasを用いた使用例
項目 | 内容 |
Pandasを用いたExcelシート名一覧を取得する方法 | リンク先ではPandasを用いたExcelシート名の一覧を取得する方法について解説しています。 |
Pandasを用いた「Excel」ファイルの読み込み操作 | リンク先ではExcelファイルの基本的な読み込み方法について解説しています。 |
Pandasを用いた複数の「xlsx」ファイルの結合方法 | リンク先ではPandasを用いて複数の「xlsx」ファイルを結合する方法について解説しています。 |
PandasとMatplotlibを用いた「xlsx」ファイルのグラフ化方法 | リンク先では「Pandas」と「Matplotlib」を用いて任意の「xlsx」ファイルのデータを読み込んで、グラフ化する方法について解説しています。 |
Pandasを用いた複数の「CSV」ファイルの結合方法 | リンク先では同一フォルダ内にある複数のCSVファイルを「pandas」を用いて、結合する方法について解説しています。 |