对Series列表进行一元及二元数学运算

类似于numpy数组,我们也可以对Series数组进行一元或者二元的数学运算,甚至可以直接使用numpy中的方法。对于一元运算比较简单,遍历数据中的非NaN数据,按照运算规则进行计算然后返回给一个新的Series数组即可,比如最简单的标积;而对于二元运算,如果index一致,则可以按照规则进行运算,如果不一致,则返回NaN数据,比如例子中的add。

我们可以使用以下代码进行演示:

import pandas as pd
import numpy as np

dict_data1 = {
	"Beijing":1000,
	"Shanghai":2000,
	"Shenzhen":500
}

dict_data2 = {
	"Beijing":1100,
	"Hangzhou":2100,
	"Shenzhen":510
}

index_list = ["Guangzhou","Hangzhou","Beijing","Shenzhen"]

data1 = pd.Series(dict_data1,index = index_list)
data2 = pd.Series(dict_data2,index = index_list)

print(2*data1)
print(data1*data2)
print(np.square(data1))
print(data1)
print(np.add(data1,data2))

运行以上代码,我们可以得到以下结果:

Guangzhou       NaN
Hangzhou        NaN
Beijing      2000.0
Shenzhen     1000.0
dtype: float64
Guangzhou          NaN
Hangzhou           NaN
Beijing      1100000.0
Shenzhen      255000.0
dtype: float64
Guangzhou          NaN
Hangzhou           NaN
Beijing      1000000.0
Shenzhen      250000.0
dtype: float64
Guangzhou       NaN
Hangzhou        NaN
Beijing      1000.0
Shenzhen      500.0
dtype: float64
Guangzhou       NaN
Hangzhou        NaN
Beijing      2100.0
Shenzhen     1010.0
dtype: float64
[Finished in 5.3s]

本质上,我们可以将Series的二元运算看成是两个数据库之间相同index元素对应的数据之间的运算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值