In [3]:
import numpy as np
from pandas import Series,DataFrame
import pandas as pd
In [12]:
# Seriesを2つ作ります
ser1 = Series([0,1,2],index=['A','B','C'])
ser1
Out[12]:
A    0
B    1
C    2
dtype: int64
In [6]:
ser2 = Series([3,4,5,6],index=['A','B','C','D'])
ser2 
Out[6]:
A    3
B    4
C    5
D    6
dtype: int64
In [8]:
# 足し合わせてみる
ser1 + ser2
# NaNが自動的に追加されます。
Out[8]:
A     3
B     5
C     7
D   NaN
dtype: float64
In [9]:
# DataFrameの場合。
dframe1 = DataFrame(np.arange(4).reshape(2,2),columns=list('AB'),index=['NYC','LA'])
dframe1
Out[9]:
A B
NYC 0 1
LA 2 3
In [19]:
dframe2 = DataFrame(np.arange(9).reshape(3,3),columns=list('ADC'),index=['NYC','SF','LA'])
dframe2
Out[19]:
A D C
NYC 0 1 2
SF 3 4 5
LA 6 7 8
In [13]:
# 足し合わせるとどうなるでしょうか?
dframe1 + dframe2
Out[13]:
A B C D
LA 8 NaN NaN NaN
NYC 0 NaN NaN NaN
SF NaN NaN NaN NaN
In [14]:
# addというメソッドを使うと、NaNを置き換えられます。
dframe1.add(dframe2,fill_value=0)
Out[14]:
A B C D
LA 8 3 8 7
NYC 0 1 2 1
SF 3 NaN 5 4
In [14]:
# SF-Bだけ元々存在しないので、置き換わりようがありません。
In [20]:
# DataFrameとSeriesの計算もできます。
In [21]:
dframe2
Out[21]:
A D C
NYC 0 1 2
SF 3 4 5
LA 6 7 8
In [22]:
# 最初の行で、Seriesを作ります。
ser3 = dframe2.ix[0]
ser3
Out[22]:
A    0
D    1
C    2
Name: NYC, dtype: int64
In [23]:
# 行ごとに引き算されているのがわかります。
dframe2-ser3
Out[23]:
A D C
NYC 0 0 0
SF 3 3 3
LA 6 6 6