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

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

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)


结果如下:

image.png


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)

结果如下:

image.png


② 使用“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)


结果如下:

image.png

注意:减法运算和加法运算的运算一摸一样,只需要将+换为-,将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)


结果如下:

image.png


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)


结果如下:

image.png


② 使用“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)


结果如下:

image.png

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


相关文章
DataFrame(12):数据转换——apply(),applymap()函数的使用(一)
DataFrame(12):数据转换——apply(),applymap()函数的使用(一)
DataFrame(12):数据转换——apply(),applymap()函数的使用(一)
DataFrame(6):DataFrame的增、删、改、查(二)
DataFrame(6):DataFrame的增、删、改、查(二)
DataFrame(6):DataFrame的增、删、改、查(二)
|
索引 Python
Pandas中DataFrame的属性、方法、常用操作以及使用示例(四)
Pandas中DataFrame的属性、方法、常用操作以及使用示例(四)
|
机器学习/深度学习 索引 Python
技术经验分享:DataFrame(1):结构介绍
技术经验分享:DataFrame(1):结构介绍
1172 0
|
存储 数据采集 数据处理
DataFrame赋值技巧:让数据处理更高效
DataFrame赋值技巧:让数据处理更高效
1861 0
|
数据采集 索引 Python
Pandas之DataFrame,快速入门,迅速掌握(二)
Pandas之DataFrame,快速入门,迅速掌握(二)
713 0
|
数据挖掘 索引 Python
python_DataFrame的loc和iloc取数据 基本方法总结
python_DataFrame的loc和iloc取数据 基本方法总结
2828 0
python_DataFrame的loc和iloc取数据 基本方法总结
|
索引 Python
Pandas学习笔记之Dataframe
Pandas学习笔记之Dataframe
2544 2
|
存储 数据采集 数据处理
Pandas中批量转换object至float的高效方法
在数据分析中,常需将Pandas DataFrame中的object类型列转换为float类型以进行数值计算。本文介绍如何使用`pd.to_numeric`函数高效转换,并处理非数字值,包括用0或平均值填充NaN值的方法。
1202 1
|
数据采集 数据挖掘 数据处理
Pandas技巧:如何将一列数据轻松分隔为两列
Pandas技巧:如何将一列数据轻松分隔为两列
1058 1