标题中的英文首字母大写比较规范,但在python实际使用中均为小写。
5.Pandas的数据运算和算术对齐
5.1 Series相加
from pandas import Series
s1 = Series([7.3, -2.5, 3.4, 1.5], index=['a', 'c', 'd', 'e'])
s2 = Series([-2.1, 3.6, -1.5, 4, 3.1], index=['a', 'c', 'e', 'f', 'g'])
s1 + s2
上面一段代码的运行结果如下图所示:
![10345471-c430346f6a124c19.png](https://i-blog.csdnimg.cn/blog_migrate/95db90634aa472896b0e0d655e9dbe2e.webp?x-image-process=image/format,png)
image.png
5.2 DataFrame相加
对于DataFrame,对齐会同时发生在行和列上,两个DataFrame对象相加后,其索引和列会取并集,缺省值用NaN。
from pandas import DataFrame
import numpy as np
kwargs = dict(
columns = list('bcd'),
index = ['北京','上海','广州']
)
df1 = DataFrame(np.arange(9).reshape(3,3),**kwargs)
kwargs = dict(
columns = list('bde'),
index = ['北京','上海','重庆','天津']
)
df2 = DataFrame(np.arange(12).reshape(4,3),**kwargs)
df1 + df2
上面一段代码的运行结果如下图所示:
![10345471-38418c8edc9bf5bc.png](https://i-blog.csdnimg.cn/blog_migrate/8a7de323303ea8f50412413d23cee5c0.webp?x-image-process=image/format,png)
image.png
设置缺省时填充值
![10345471-e7a15821fd07db1d.png](https://i-blog.csdnimg.cn/blog_migrate/1cc96e2646ebc0ec4ae677aee0837283.webp?x-image-process=image/format,png)
image.png
5.3 DataFrame和Series之间的运算
默认情况下,DataFrame和Series之间的算术运算会将Series的索引匹配到DataFram的列,然后沿着行一直向下广播,如下图所示:
![10345471-b8d76e6057b83964.png](https://i-blog.csdnimg.cn/blog_migrate/566ae0c73d4817bc27dbb5dd53e6763e.webp?x-image-process=image/format,png)
image.png
.读者可以复制下面代码运行,然后查看结果是否相同:
from pandas import Series,DataFrame
import numpy as np
df = DataFrame(np.arange(12).reshape((4,3)),
columns=list("bde"),
index=["Utah","Ohio","Texas","Oregon"])
print("df:",df,sep='\n')
series = df.iloc[0]
print("series:",series,sep='\n')
print("df - series:", df-series,sep='\n')
5.4 Pandas中的函数应用和映射
5.4.1 Numpy中的函数可以用于操作pandas对象
![10345471-863f502445d37e27.png](https://i-blog.csdnimg.cn/blog_migrate/6324c63e6be5644c6b00f780c4e0fde1.webp?x-image-process=image/format,png)
image.png
.读者可以复制下面代码运行,然后查看结果是否相同:
from pandas import Series,DataFrame
import numpy as np
df = DataFrame(np.random.randn(12).reshape((4,3)),
columns=list("bde"),
index