1.算术运算和数据对齐
import numpy as np import pandas as pd
1.1 Series
a1 = pd.Series(np.arange(4),index=['a','b','c','d']) a2 = pd.Series(np.arange(5),index=['a','r','c','u','k']) print(a1) print("="*20) print(a2)
a 0
b 1
c 2
d 3
dtype: int32
====================
a 0
r 1
c 2
u 3
k 4
dtype: int32
有相同的索引值相加后结果变为浮点数,不相同则返回NAN值。
a1 + a2
a 0.0
b NaN
c 4.0
d NaN
k NaN
r NaN
u NaN
dtype: float64
1.2 DataFrame
a3 = pd.DataFrame(np.arange(12).reshape(3,4),index=['a','b','c'],columns=['q','w','e','r']) a4 = pd.DataFrame(np.aran<mark style="color:transparent">本文来源gaodaimacom搞#^代%!码&网*</mark>ge(9).reshape(3,3),index=['a','u','c'],columns=['m','e','r']) print(a3) print("="*20) print(a4)
q w e r
a 0 1 2 3
b 4 5 6 7
c 8 9 10 11
====================
m e r
a 0 1 2
u 3 4 5
c 6 7 8
只有行和列索引都相同的才能运算,否则返回NAN值
a3 + a4
e m q r w
a 3.0 NaN NaN 5.0 NaN
b NaN NaN NaN NaN NaN
c 17.0 NaN NaN 19.0 NaN
u NaN NaN NaN NaN NaN
2.使用填充值的算术方法
2.1 Series
a1 = pd.Series(np.arange(4),index=['a','b','c','d']) a2 = pd.Series(np.arange(5),index=['a','r','c','u','k']) print(a1) print("="*20) print(a2) print("="*20) print(a1 + a2) #有相同的索引值相加后结果变为浮点数,不相同索引值相加则返回NAN
a 0
b 1
c 2
d 3
dtype: int32
====================
a 0
r 1
c 2
u 3
k 4
dtype: int32
====================
a 0.0
b NaN
c 4.0
d NaN
k NaN
r NaN
u NaN
dtype: float64