📅  最后修改于: 2023-12-03 14:46:30.568000             🧑  作者: Mango
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。
divisor
应该与被除数(caller)Index对齐。level
来根据级别执行广播fill_value
可以用于替换结果中的NaN值。