目次
概要
pandas の基本的な関数を整理しました。
二項演算
二項演算は同じインデックス同士で行われる
pandas で2つの DataFrame または Series 同士で演算を行う場合、演算は同じ index 同士で行われます。index が一方にしかない場合は、NaN として演算が行われます。
例えば、以下は index “a” は s1、”d” は s2 にしか存在しないので、インデックス “a” は 1 + NaN、インデックス “d” は NaN + 3 として計算されます。その結果、インデックス “a” 及び “d” の演算結果は NaN になります。
In [1]:
import pandas as pd
s1 = pd.Series([1, 2, 3], index=["a", "b", "c"])
s2 = pd.Series([1, 2, 3], index=["b", "c", "d"])
s3 = s1 + s2
print(s3)
a NaN b 3.0 c 5.0 d NaN dtype: float64
比較演算
DataFrame | Series | numpy | 説明 |
---|---|---|---|
DataFrame.lt | Series.lt | less | $x_1 < x_2$ |
DataFrame.le | Series.le | less_equal | $x_1 \le x_2$ |
DataFrame.gt | Series.gt | greater | $x_1 > x_2$ |
DataFrame.ge | Series.ge | greater_equal | $x_1 \ge x_2$ |
DataFrame.eq | Series.eq | equal | $x_1 = x_2$ |
DataFrame.ne | Series.ne | not_equal | $x_1 \ne x_2$ |
加減乗除、累乗、mod
DataFrame | Series | numpy | 説明 |
---|---|---|---|
DataFrame.add | Series.add | add | $x_1 + x_2$ |
DataFrame.sub | Series.sub | subtract | $x_1 – x_2$ |
DataFrame.mul | Series.mul | multiply | $x_1 \times x_2$ |
DataFrame.div | Series.div | divide | $x_1 / x_2$ |
DataFrame.truediv | Series.truediv | true_divide | $x_1 / x_2$ |
DataFrame.floordiv | Series.floordiv | floor_divide | $x_1 // x_2$ |
DataFrame.pow | Series.pow | power | $x_1^{x_2}$ |
DataFrame.mod | Series.mod | mod | $x_1 \mod x_2$ |
DataFrame.radd | Series.radd | $x_2 + x_1$ | |
DataFrame.rsub | Series.rsub | $x_2 – x_1$ | |
DataFrame.rmul | Series.rmul | $x_2 \times x_1$ | |
DataFrame.rdiv | Series.rdiv | $x_2 / x_1$ | |
DataFrame.rtruediv | Series.rtruediv | $x_2 / x_1$ | |
DataFrame.rfloordiv | Series.rfloordiv | $x_2 // x_1$ | |
DataFrame.rmod | Series.rmod | $x_2 \mod x_1$ | |
DataFrame.rpow | Series.rpow | $x_2^{x_1}$ |
内積、行列積、any、all、equals
DataFrame | Series | numpy | 説明 |
---|---|---|---|
DataFrame.dot | Series.dot | dot | DataFrame: 行列積 Series: 内積 |
DataFrame.any | Series.any | any | いずれかの要素が True かどうか |
DataFrame.all | Series.all | all | すべての要素が True かどうか |
DataFrame.equals | Series.equals | array_equal | すべての要素が一致するかどうか |
Series.dot、DataFrame.dot
DataFrame.dot は行列積を計算します。 Series.dot は内積を計算します。
In [2]:
import pandas as pd
df1 = pd.DataFrame([[6, 4], [5, 4]])
df2 = pd.DataFrame([[7, 5], [1, 6]])
ret = df1.dot(df2)
print(ret)
# 0 1
# 0 46 54
# 1 39 49
# 以下と同値
ret = df1 @ df2
print(ret)
# 0 1
# 0 46 54
# 1 39 49
0 1 0 46 54 1 39 49 0 1 0 46 54 1 39 49
単項演算
絶対値、内積、行列積、丸め、クリップ
DataFrame | Series | numpy | 説明 |
---|---|---|---|
DataFrame.abs | Series.abs | abs | $|x|$ |
DataFrame.round | Series.round | around | 指定した桁に丸める |
DataFrame.clip | Series.clip | clip | 指定範囲に値をクリップする |
Series.abs、DataFrame.abs
In [3]:
import pandas as pd
s = pd.Series([1, -2, -3])
ret = s.abs()
print(ret)
# 0 1
# 1 2
# 2 3
# dtype: int64
df = pd.DataFrame([[1, -2], [3, -4]])
ret = df.abs()
print(ret)
# 0 1
# 0 1 2
# 1 3 4
0 1 1 2 2 3 dtype: int64 0 1 0 1 2 1 3 4
Series.round、DataFrame.round
小数を指定した桁に丸めます。
In [4]:
import pandas as pd
s = pd.Series([1.123, -2.125, -3.127])
ret = s.round(2)
print(ret)
# 0 1.12
# 1 -2.12
# 2 -3.13
# dtype: float64
df = pd.DataFrame([[1.123, -2.125], [3.127, -4.129]])
ret = df.round(2)
print(ret)
# 0 1
# 0 1.12 -2.12
# 1 3.13 -4.13
0 1.12 1 -2.12 2 -3.13 dtype: float64 0 1 0 1.12 -2.12 1 3.13 -4.13
Series.clip、DataFrame.clip
指定した範囲に値をクリップします。
In [5]:
import pandas as pd
s = pd.Series([0, 1, 2, 3, 4, 5])
ret = s.clip(1, 3)
print(ret)
# 0 1
# 1 1
# 2 2
# 3 3
# 4 3
# 5 3
# dtype: int64
df = pd.DataFrame([[0, 1, 2], [3, 4, 5]])
ret = df.clip(1, 3)
print(ret)
# 0 1 2
# 0 1 1 2
# 1 3 3 3
0 1 1 1 2 2 3 3 4 3 5 3 dtype: int64 0 1 2 0 1 1 2 1 3 3 3
コメント