NumPy 中 DataFrame.div 和 DataFrame.divide 在 Pandas 中的区别

NumPy 中 DataFrame.div 和 DataFrame.divide 在 Pandas 中的区别

在本文中,我们将介绍 Pandas 里的两个关于 DataFrame 的方法——DataFrame.div 和 DataFrame.divide 之间的差异。

阅读更多:Numpy 教程

DataFrame.div

使用 DataFrame.div 函数时,我们可以将一组数据除以另一组数据,例如:

import pandas as pd
import numpy as np

df1 = pd.DataFrame({'A': [10, 20, 30], 'B': [10, 10, 10], 'C': [10, 20, 30]})
df2 = pd.DataFrame({'A': [1, 2, 3], 'B': [1, 2, 3], 'C': [1, 2, 3]})

df1.div(df2)

这段代码输出:

      A     B     C
0  10.0  10.0  10.0
1  10.0   5.0  10.0
2  10.0  3.333333  10.0

其中 df1df2 中的每一项相除得到了一个新的 DataFrame,我们可以看到:

  • 0 行的数据是 df1df2 中对应数据相除得到的;
  • 1 行的数据是 df1 中 B 列和 df2 中 B 列对应数据的相除;
  • 2 行的数据是 df1 中 B 列和 df2 中 B 列对应数据的相除,但数据类型是 float。

DataFrame.divide

DataFrame.divide 函数与 DataFrame.div 函数非常相似,不同之处在于,DataFrame.divide 接受额外的参数。

举个例子:

df1.divide(df2, fill_value=0)

这会得到:

      A     B     C
0  10.0  10.0  10.0
1  10.0   5.0  10.0
2  10.0  3.333333  10.0

这个结果和使用 DataFrame.div 得到的结果是一样的。

但是,不同之处在于我们可以提供一个 fill_value 参数。如果 df2 中有缺失值,我们可以使用 fill_value 参数来代替。举个例子:

df2 = pd.DataFrame({'A': [1, 2, np.nan], 'B': [1, np.nan, 3], 'C': [np.nan, np.nan, np.nan]})

df1.divide(df2, fill_value=0)

这段代码将输出:

       A     B    C
0  10.00  10.00  0.0
1  10.00   0.00  NaN
2   inf   3.333333 NaN

在这里,我们可以看到,df2 中有缺失数据,但我们使用了 fill_value=0,所以我们得到了非常好的结果。

总结

尽管 DataFrame.divDataFrame.divide 中的参数略有不同,但它们的用法都非常类似,就是将一个 DataFrame 中的一组数据除以另一组数据。在使用时,我们可以根据情况选择使用哪一个函数,并且可以根据方法提供的选项参数自定义计算方法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程