DataFrame算术-映射-Pandas数据清洗

DataFrame算术

实际上,通过 + - * / // ** 等符号可以直接对DataFrame与DataFrame之间或者DataFrame以及Series之间进行运算。但秉承的原则就是对应索引运算,存在索引不同时,返回结果为索引对的并集。
但是实际操作会发现,当存在索引不同时,返回的值自动填充NaN。

DataFrame的运算

import pandas as pd
import numpy as np

df1 = pd.DataFrame(np.ones((2,2)),columns=list("ab"))
df2 = pd.DataFrame(np.ones((3,3)),columns=list("abc"))

print(df1)   # 2*2
print(df2)   # 3*3

# df1 与 df2 形状完全不一致 是否可以进行运算?
df1 + df2   # 未报错。并集:索引相同部分运算,缺失部分填充为np.nan

"""
DF 与 Series
"""
# 结构一致
s = df2.iloc[0,:]    # (3,) 与 (3,3) 
print(s)
print(df2)     
df2 + s              # 进行0轴广播

# 结构完全不同
s2 = pd.Series(np.arange(15,20))  # (5,)  (3,3)
print(s2)
print(df2)

s2 + df2     # 并集:全部填充NaN

使用填充值的算术方法

方法 描述
add 加法(+)
sub 减法(-)
div 除法(/)
floordiv 整除(//)
mul 乘法(*)
pow 幂次方(**)

算术方法

df1.add(df2,fill_value=2)   # fill_value是填充再有缺失值的数组,也就是说 2.0+1.0=3.0

df2.add(s) 
df2.add(s2)

注意

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值