Python,pandasの基礎② ~pandasのデータ構造「Series」における計算~

記事内に広告が含まれています。

どうも!僕です!
つか〇です!

pandasのデータ構造「Series」の基本的な操作について紹介します.
多くのことが,今後紹介する「DataFrame」にも通用するので,しっかり基礎を押さえていきましょう!

比較演算子によるフィルタリング,掛け算等,数学的関数の適用

pandasは,NumPyと同様にループを使わずに各要素ごとに計算を行うことができます.
NumPyについては,「NumPyの基礎① ~NumPyとは?NumPyの構造,扱いを知ろう!!編~」で紹介しています.

一方で,pandasでは,ラベル付けしたインデックスとデータの値との関係は保持されます.
以下の例で見ていきましょう.

比較演算子による参照

まず,下記のようにpandasとpandasのSeriesをインポートして,Series構造を持つ配列を作成します.
数値は適当に変えちゃってOKです!

import pandas as pd
from pandas import Series

obj2 = pd.Series([6, -9, 2, 1, 5], index=["b", "e", "a", "d", "c"])
obj2
b    6
e   -9
a    2
d    1
c    5
dtype: int64

この,Series構造のデータに関して,3より大きい値を持つ行を取得してみましょう!

obj2[obj2 > 3]

出力は以下のようになります.

b    6
c    5
dtype: int64

3より大きいデータを持つ行だけ取得できましたね.
このとき,インデックスラベルとデータの関係は保持されたままとなっていることもわかります.

スカラー値との計算

それでは,スカラー値との掛け算も見ていきましょう.
3を掛けましょう!
みんなでアホになりましょう.

はい.

では,やりましょう.

obj2 * 3
b    18
e   -27
a     6
d     3
c    15
dtype: int64

すべてに3がかかりましたね.
すべてアホになれましたね.最高です!
ちなみに3150(最高)も3の倍数ですね!

数学的関数の適用

続いて,数学で用いられる関数を適用してみましょう!
今回は,exp()メソッドを使ってみましょう.
expは,「exponential」で,数学で使う指数関数ですね.
「eの〇乗」とかいうやつです.

では,やってみましょう.

import numpy as np
np.exp(obj2)
b    403.428793
e      0.000123
a      7.389056
d      2.718282
c    148.413159
dtype: float64

合っているかどうかを確かめるのは面倒ですが,webで計算ツールを探して確認してみてください.
CASIOさんのサイトから確認できます.
https://keisan.casio.jp/exec/system/1260353091

で,先ほどのコードを見てもらうと,NumPyでの処理を行ってます.
NumPyの関数や,NumPy風の操作を行った場合でも,pandasでは,データとインデックスの関係が保持されます.

今回は,exp()で行いましたが,ほかにもいろいろあるので,自分で探して適用してみましょう!

まとめ

pandasでの演算操作について軽く触れてみました.
上記のように直感的に計算を行えるのがいいところです.
やっぱ,for文でループ処理を書かなくていいってのは楽ですね!

pandasの詳しい内容については,「Pythonによるデータ分析入門」がお勧めです.
データ分析での使い方をわかりやすく解説しています.

独学だけではこぼしてしまう内容も結構載っているので,お勧めです.

一緒にpandasをマスターして,データ分析を武器に世界を変えていきましょう!!

コメント

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