pandas入門4_「データ同士の計算」
こんにちは、ワタルです。
さっと見て、「あぁそうだったそうだった」と確認できるハンドブックのような存在を目指して。
pandas入門第4回目、「データ同士の計算」です。
今回の学習内容
今回では、新しい関数について学ぶのではなく、SeriesやDataframe同士を足し算や引き算をした場合にどういった挙動をするのかについて学んでいきます。
おまじない
import numpy as np from pandas import Series,DataFrame import pandas as pd
Seriesをつくる
#Seriesを2つ、つくります #1つめ ser1 = Series([0,1,2],index=['A','B','C']) ser1 >>> A 0 B 1 C 2 dtype: int64
#2つめ ser2 = Series([3,4,5,6],index=['A','B','C','D']) ser2 >>> A 3 B 4 C 5 D 6 dtype: int64
Seriesの足し算
ser1 + ser2 #同じindexの要素が足し算されていることがわかります #片方にしかindexが存在しない場合には、NaNが自動的に追加されています >>> A 3 B 5 C 7 D NaN dtype: float64
DataFrameをつくる
dframe1 = DataFrame(np.arange(4).reshape(2,2),columns=list('AB'),index=['NYC','LA']) dframe1 >>> A B NYC 0 1 LA 2 3
dframe2 = DataFrame(np.arange(9).reshape(3,3),columns=list('ADC'),index=['NYC','SF','LA']) dframe2 >>> A D C NYC 0 1 2 SF 3 4 5 LA 6 7 8
DataFrameの足し算
dframe1 + dframe2 #片方にしかindexとcolumnsが存在しない場合には、NaNが自動的に追加されています >>> A B C D LA 8.0 NaN NaN NaN NYC 0.0 NaN NaN NaN SF NaN NaN NaN NaN
addメソッドによる足し算
#addに引数(fill_value=0)を使うと、NaNを置き換えられます。 dframe1.add(dframe2,fill_value=0) # SF-Bはどちらにも存在しないので、NaNになります。 >>> A B C D LA 8 3 8 7 NYC 0 1 2 1 SF 3 NaN 5 4
DataFrameとSeriesの計算
#Dataframeの確認 dframe2 >>> A D C NYC 0 1 2 SF 3 4 5 LA 6 7 8
dataframe.locとdataframe.iloc(Dataframeから、Seriesをつくる)
#locの時は、行ラベル名・ 列ラベル名で指定ができます。 #ilocの時は、行の番号(0 ~ )、列の番号(0 ~ )で指定ができます。 ser3 = dframe2.iloc[0]#dframe2のindex = 0(1行目)を指定しています ser3 >>> A 0 D 1 C 2 Name: NYC, dtype: int64
DataFrameとSeriesの引き算
dframe2-ser3 #ser3は1×3の配列であり、行ごとに引き算されているのがわかります。 >>> A D C NYC 0 0 0 SF 3 3 3 LA 6 6 6
今回は、DataframeやSeries同士の計算を学びました。
お疲れ様でした!
次回はこちら。
それじゃー、また。