Python §27 : pandasの重要な機能(算術メソッドと値の置換) | hitochan007のブログ(Pythonの勉強ブログ)

hitochan007のブログ(Pythonの勉強ブログ)

★Pythonの勉強記録を中心に●pomera DM200、●パソコン、●グルメ、●愛犬(トイプードル) などについてのブログです

新しいブログをはじめました。pythonの初級者から中級者まで、役に立つ記事を掲載していますので、ご覧ください。

特にカスタム関数(ユーザー定義関数)は、便利に使えると思います。

ぜひぜひこのリンクをクリックしてください 

 Pythonを勉強して株で儲けるブログ







■pandas:重要な機能(算術メソッドと値の置換)■
●1.加算(add)
●2.減算(sub)
●3.除算(div)
●4.乗算(mul)


二つのデータフレームを演算した場合に、インデックスが一致しない要素はNaNになることを前回勉強しました。

df1=DataFrame(np.arange(12.).reshape((3,4)),columns=list('abcd'))
a b c d
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
df2=DataFrame(np.arange(20.).reshape((4,5)),columns=list('abcde'))
a b c d e
0 0 1 2 3 4
1 5 6 7 8 9
2 10 11 12 13 14
3 15 16 17 18 19
df1+df2
a b c d e
0 0 2 4 6 NaN
1 9 11 13 15 NaN
2 18 20 22 24 NaN
3 NaN NaN NaN NaN NaN
不足しているデータを例えば0などで補間したい場合もあると思います。


●1.加算(add)

そこで、単純にdf1+df2とするのではなく、算術メソッドを使う方法で不足データを補間することができます。

df3=df1.add(df2,fill_value=0)
a b c d e
0 0 2 4 6 4
1 9 11 13 15 9
2 18 20 22 24 14
3 15 16 17 18 19



●2.減算(sub)

df3=df1.sub(df2,fill_value=0)
a b c d e
0 0 0 0 0 -4
1 -1 -1 -1 -1 -9
2 -2 -2 -2 -2 -14
3 -15 -16 -17 -18 -19



●3.除算(div)

df3=df1.div(df2,fill_value=0)
a b c d e
0 NaN 1.000000 1.000000 1.000000 0
1 0.8 0.833333 0.857143 0.875000 0
2 0.8 0.818182 0.833333 0.846154 0
3 0.0 0.000000 0.000000 0.000000 0

さすがに分母がゼロのときは、NaNになります。

●4.乗算(mul)

df3=df1.mul(df2,fill_value=0)
a b c d e
0 0 1 4 9 0
1 20 30 42 56 0
2 80 99 120 143 0
3 0 0 0 0 0




以上演算メソッドと値の置換についてでした。ループを回さずに一発で配列同士の計算ができることはとても便利ですね。

→今日のソースコードのリンクはこちらです。
(メニューGroup3のG3dです。G3dのボタンで実行できます)





今日は、文字数に余裕があったので、コードも載せます。
コード

def prg_G3d(self):
print('G3d')
print('5.2.4.1算術メソッドと値の置換')
df1=DataFrame(np.arange(12.).reshape((3,4)),columns=list('abcd'))
df2=DataFrame(np.arange(20.).reshape((4,5)),columns=list('abcde'))
print("■df1=DataFrame(np.arange(12.).reshape((3,4)),columns=list('abcd'))\n",df1)
print("■df2=DataFrame(np.arange(20.).reshape((4,5)),columns=list('abcde'))\n",df2)
print("■df1+df2\n",df1+df2)
df3=df1.add(df2,fill_value=0)
print("■df3=df1.add(df2,fill_value=0)\n",df3)

df3=df1.sub(df2,fill_value=0)
print("■df3=df1.sub(df2,fill_value=0)\n",df3)

df3=df1.div(df2,fill_value=0)
print("■df3=df1.div(df2,fill_value=0)\n",df3)

df3=df1.mul(df2,fill_value=0)
print("■df3=df1.mul(df2,fill_value=0)\n",df3)




Python ブログランキングへ 
クリックしてね


新しいブログをはじめました。pythonの初級者から中級者まで、役に立つ記事を掲載していますので、ご覧ください。

特にカスタム関数(ユーザー定義関数)は、便利に使えると思います。

ぜひぜひこのリンクをクリックしてください 

 Pythonを勉強して株で儲けるブログ