pandas学习笔记-算术运算和数据对齐

pandas最重要的一个功能是,它可以对不同索引的对象进行算数运算。在将对象相加时,如果存在不同的索引对,则结果的索引就是该索引对的并集。

s1 = pd.Series([7.3,-2.5,3.4,1.5],index=['a','c','d','e'])
# a    7.3
# c   -2.5
# d    3.4
# e    1.5
s2 = pd.Series([-2.1,3.6,-1.5,4,3.1],index=['a','c','e','f','g'])
# a   -2.1
# c    3.6
# e   -1.5
# f    4.0
# g    3.1
print s1+s2
# a    5.2
# c    1.1
# d    NaN
# e    0.0
# f    NaN
# g    NaN

自动的数据对齐操作在不重叠的索引处引入了NA值。缺失值会在算数运算过程中传播。

df1 = pd.DataFrame(np.arange(9).reshape((3,3)),columns=list('bcd'),index=['Ohio','Texas','Colorado'])
#           b  c  d
# Ohio      0  1  2
# Texas     3  4  5
# Colorado  6  7  8
df2 = pd.DataFrame(np.arange(12).reshape((4,3)),columns=list('bcd'),index=['Utah','Ohio','Texas','Oregon'])
#         b   c   d
# Utah    0   1   2
# Ohio    3   4   5
# Texas   6   7   8
# Oregon  9  10  11
df1+df2
#             b     c     d
# Colorado  NaN   NaN   NaN
# Ohio      3.0   5.0   7.0
# Oregon    NaN   NaN   NaN
# Texas     9.0  11.0  13.0
# Utah      NaN   NaN   NaN

使用df1的add方法,传入df2以及一个fill_value参数:

df1.add(df2,fill_value=0)
#             b     c     d
# Colorado  6.0   7.0   8.0
# Ohio      3.0   5.0   7.0
# Oregon    9.0  10.0  11.0
# Texas     9.0  11.0  13.0
# Utah      0.0   1.0   2.0

与此类似,在对Series或DataFrame重新索引时,也可以指定一个填充值:

df1.reindex(index=df2.index,fill_value=0)
#         b  c  d
# Utah    0  0  0
# Ohio    0  1  2
# Texas   3  4  5
# Oregon  0  0  0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值