【python】DataFrame, Seriesの計算
いつも通り、numpy , pandasのインポート。
import numpy as np import pandas as pd from pandas import Series, DataFrame
Seriesの計算
#テスト用のシリーズの作成 series1 = Series([1,2,3],index=['A','B','C']) series2 = Series([2,0,5,8],index=['B','C','D','E'])
足し算
series1 + series2 #出力結果 A NaN B 4.0 C 3.0 D NaN E NaN dtype: float64
series1,series2の両方にインデックスが存在している「B,C」は数値が足し算される。
インデックスが共通になっていないA,D,Eについては、NaNになる。
共通のインデックスが無い場合に数値を埋める
series1.add(series2, fill_value=0) #出力結果 A 1.0 B 4.0 C 3.0 D 5.0 E 8.0 dtype: float64
「fill_value=0」を指定する事で、共通していないインデックスを埋める事ができる。
DataFrameの計算
#テスト用のDataFrameの作成 dframe1 = DataFrame(np.arange(4).reshape((2,2)), columns=['col1','col3'], index=['B','D']) dframe2 = DataFrame(np.arange(9).reshape((3,3)), columns=['col1','col2','col3'], index=['A','B','C'])
足し算
dframe1 + dframe2 #出力結果 col1 col2 col3 A NaN NaN NaN B 3.0 NaN 6.0 C NaN NaN NaN D NaN NaN NaN
Series同様に、共通している箇所のみが足し算される。
共通のインデックスが無い場合に数値を埋める
dframe1.add(dframe2, fill_value=0) #出力結果 col1 col2 col3 A 0.0 1.0 2.0 B 3.0 4.0 6.0 C 6.0 7.0 8.0 D 2.0 NaN 3.0
こちらもSeries同様に、「fill_value=0」を指定すると数値を埋める事が出来る。
dframe1,dframe2の両方に数値がない箇所はNaNで表示される。