- import pandas as pd
- import numpy as np
- rng = np.random.RandomState(42)
- ser = pd.Series(rng.randint(0, 10, 4))
- ser
- df = pd.DataFrame(rng.randint(0, 10, (3, 4)),
- columns=['A', 'B', 'C', 'D'])
- df
可以看到,运用 Numpy 中的函数可以对 Pandas 对象中的元素进行复杂地运算:
- np.exp(ser)
- np.sin(df * np.pi / 4)
接着,我们构造两个带有指定序号名的 Pandas 序列,如下所示:
- area = pd.Series({'Alaska': 1723337, 'Texas': 695662,
- 'California': 423967}, name='area')
- population = pd.Series({'California': 38332521, 'Texas': 26448193,
- 'New York': 19651127}, name='population')
- population / area
- area.index | population.index
当使用加号对两个 Pandas 序列进行相加运算时,我们得到的结果与上面相除结果类似——若对应的序号并非同时存在于两个序列中,则返回的值为NaN:
- A = pd.Series([2, 4, 6], index=[0, 1, 2])
- B = pd.Series([1, 3, 5], index=[1, 2, 3])
- A + B
对于这种情况,我们可以运用 add 函数来完成相加并解决缺省值的问题——将参数 fill_value 的值设置为0,这样空缺序号对应的元素在计算时将会自动由0填补:
- A.add(B, fill_value=0)
以上内容转自 数析学院 ,感兴趣的同学可以访问原文学习后续更多内容