筋肉で解決しないために。

日々出会うモノに対する考察をしたり、主に以下のテーマに関して書いています。 データサイエンス/人工知能/AI/機械学習/DeepLearning/Python//数学/統計学/統計処理

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同士の計算を学びました。

お疲れ様でした!

次回はこちら。

watarumon.hatenablog.com

それじゃー、また。