📜  Python|熊猫 Series.div()(1)

📅  最后修改于: 2023-12-03 14:46:30.568000             🧑  作者: Mango

Python | 熊猫 Series.div()

Pandas是基于NumPy数组构建的开源数据分析工具,其中Series是一种类似于一维数组的对象,其中每个元素都有一个标签(即索引)。Series.div()是Pandas中Series类型的一个函数,用于将dividends除以divisors,而且可以指定是否填充结果。下面我们将深入讨论这个函数。

语法
Series.div(divisor, level=None, fill_value=None, axis=0)
参数
  • divisor:除数,如果不是Series或标量,则必须与被除数(caller)Index对齐。否则,它也必须是Index或与序列相同的对象。
  • level:如果轴是一个MultiIndex,则根据级别进行广播(并进行元素对齐)。默认为None,这将广播除数和被除数的全部标签。
  • fill_value:填充值,用于替换NaN值,以便更好地完成转换。默认情况下,NaN值将被保留。
  • axis:轴,0代表行,1代表列,默认为0。
返回值

SeriesObject - 分子/分母之间的类似于等值的元素的Quotient elementwise,指定超时时间。

示例
import pandas as pd
import numpy as np

data = {'A':[1, 2, np.nan, 4],
       'B':[5, np.nan, 7, 8],
       'C':[9, 10, 11, 12]}
df = pd.DataFrame(data)
df['D'] = pd.Series([1, 2, 3, 4])
df['E'] = pd.Series([5, 6, 7, 8], index=[0, 1, 2, 4])

# 按照列进行运算
print(df.div(df['D'], axis=0))

# 指定fillna的值
print(df.div(df['E'], axis=0, fill_value=0))

输出结果如下:

     A    B         C  D     E
0  1.0  5.0  9.000000  1   1.0
1  1.0  4.0  5.000000  1   0.5
2  NaN  NaN  NaN       1   0.0
3  1.0  2.0  3.000000  1   NaN

     A         B         C    D  E
0  0.2  1.000000  1.800000  0.2  1.0
1  0.3  0.333333  1.666667  0.3  1.0
2  inf       inf       inf  inf  0.0
3  0.5  0.625000  0.750000  0.5  NaN
4  NaN       NaN       NaN  NaN  1.0

以上代码演示了如何计算DataFrame的每个元素与指定Series之间的除法。注意,其中缺失值(NaN)将保留并在结果中呈现。可以看到,我们在同一DataFrame中使用了不同类型的标签。在这种情况下,使用fill_value引数将所有NaN值替换为0。

总结
  • Series.div()是Pandas中一种用于将dividends除以divisors的快捷方式。
  • divisor应该与被除数(caller)Index对齐。
  • 可以指定 level 来根据级别执行广播
  • fill_value 可以用于替换结果中的NaN值。