DataFrame(7):DataFrame运算——算术运算

举报
yd_226342373 发表于 2021/05/21 00:05:55 2021/05/21
【摘要】 1、DataFrame算术运算 加:add 或 +减:sub 或 - 2、DataFrame与标量之间的运算(这个才是最重要的) 1)原始数据 x = [[np.nan,1,1,1,1],[2,2,np.nan,2,2],[3,3,3,3,3],[4,np.nan,4,4,4]] df = pd.DataFrame(x,columns=list("abcde")...

1、DataFrame算术运算

  • 加:add 或 +
  • 减:sub 或 -

2、DataFrame与标量之间的运算(这个才是最重要的)

1)原始数据
x = [[np.nan,1,1,1,1],[2,2,np.nan,2,2],[3,3,3,3,3],[4,np.nan,4,4,4]]
df = pd.DataFrame(x,columns=list("abcde"))
display(df)

  
 
  • 1
  • 2
  • 3

结果如下:
在这里插入图片描述

2)DataFrame与标量的加法运算
① 使用“+”运算符
x = [[np.nan,1,1,1,1],[2,2,np.nan,2,2],[3,3,3,3,3],[4,np.nan,4,4,4]]
df = pd.DataFrame(x,columns=list("abcde"))
display(df)


# DataFrame与标量的运算:df中的每个元素与100一一相加
df1 = df + 100
display(df1)

# 一列(Series)与标量的运算
display(df["a"])
df["a"] = df["a"] + 100
display(df)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

结果如下:
在这里插入图片描述

② 使用“add()”函数
x = [[np.nan,1,1,1,1],[2,2,np.nan,2,2],[3,3,3,3,3],[4,np.nan,4,4,4]]
df = pd.DataFrame(x,columns=list("abcde"))
display(df)

df1 = df.add(100)
display(df1)

# 可以使用fill_value参数,给缺失值nan添加默认值
df2 = df.add(100,fill_value=1000)
display(df2)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

结果如下:
在这里插入图片描述
注意:减法运算和加法运算的运算一摸一样,只需要将+换为-,将add()换位sub()即可。

3、DataFrame与DataFrame之间的运算

1)原始数据
x = pd.DataFrame({"a":[1,2,3], "b":[2,3,4], "c":[3,4,5]})
display(x)

y = pd.DataFrame({"a":[1,2,3], "b":[2,3,4], "d":[3,4,5]}, index=[1,2,3])
display(y)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

结果如下:
在这里插入图片描述

2)DataFrame与DataFrame之间的减法运算
① 使用“+”运算符
x = pd.DataFrame({"a":[1,2,3], "b":[2,3,4], "c":[3,4,5]})
display(x)

y = pd.DataFrame({"a":[1,2,3], "b":[2,3,4], "d":[3,4,5]}, index=[1,2,3])
display(y)

display(x+y)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

结果如下:
在这里插入图片描述

② 使用“sub()”函数
x = pd.DataFrame({"a":[1,2,3], "b":[2,3,4], "c":[3,4,5]})
display(x)

y = pd.DataFrame({"a":[1,2,3], "b":[2,3,4], "d":[3,4,5]}, index=[1,2,3])
display(y)

z = x.sub(y)
display(z)

z1 = x.sub(y,fill_value=100)
display(z1)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

结果如下:
在这里插入图片描述
总结如下:DataFrame与DataFrame之间的运算,由于DataFrame中的每一元素都由其行列索引唯一确定,也就是说DataFrame中的每一元素都有一个(行索引,列索引)构成的坐标 。因此对于不同的DataFrame,只用索引匹配上的数据,对应元素相加,对于没有匹配上的数据,返回的是NaN值 。

文章来源: blog.csdn.net,作者:数据分析与统计学之美,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_41261833/article/details/104176300

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。