【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で表示される。