当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Pandas DataFrame rfloordiv方法用法及代码示例


Pandas DataFrame.rfloordiv(~) 方法在标量、序列、Series 或 DataFrame 与源 DataFrame 中的值之间执行整数除法,即:

other // DataFrame

请注意,这与 DataFrame.floordiv(~) 相反,它执行以下操作:

DataFrame // other
注意

除非您使用参数 axislevelfill_value ,否则 rfloordiv(~) 相当于使用 // 运算符执行除法。

参数

1.other | scalarsequenceSeriesDataFrame

结果DataFrame 将通过整数除法将other 除以源DataFrame。

2. axis | intstring | optional

是否为源DataFrame的每一列或每一行广播other

说明

"index"0

每列广播other

"columns"1

每行广播 other

请注意,这仅在源 DataFrame 的形状与 other 的形状不匹配时才相关。默认情况下,axis=1

3. level | intstring | optional

要考虑的级别的名称或整数索引。仅当您的 DataFrame 是多索引时,这才相关。

4. fill_value | floatNone | optional

在计算之前替换NaN的值。请注意,如果两对条目均为 NaN ,则结果仍为 NaN 。默认情况下,fill_value=None

返回值

整数除法产生新的DataFrame。

例子

基本用法

考虑以下 DataFrame :

df = pd.DataFrame({"A":[1,2], "B":[3,4]})
df_other = pd.DataFrame({"A":[5,6], "B":[7,8]})



   A  B  |     A  B
0  1  3  |  0  5  7
1  2  4  |  1  6  8

执行整数除法:

df.rfloordiv(df_other)



   A  B
0  5  2
1  3  2

在这里,我们执行以下逐元素整数除法:

5//1 7//3
6//2 8//4

请注意,这相当于:

df_other // df



   A  B
0  5  2
1  3  2

广播

考虑以下 DataFrame :

df = pd.DataFrame({"A":[2,3], "B":[4,5]})
df



   A  B
0  2  4
1  3  5
逐行整数除法

默认情况下, axis=1 ,这意味着 other 将为 df 中的每一行广播:

df.rfloordiv([7,8])   # axis=10



   A  B
0  3  2
1  2  1

在这里,我们执行以下逐元素整数除法:

7//2 8//4
7//3 8//5
按列整数除法

要为 df 中的每一列广播 other,请像这样设置 axis=0

df.rfloordiv([7,8], axis=0)



   A  B
0  3  1
1  2  1

在这里,我们执行以下逐元素除法:

7//2 7//4
8//3 8//5

指定fill_value

考虑以下数据帧:

df = pd.DataFrame({"A":[2,np.NaN], "B":[np.NaN,5]})
df_other = pd.DataFrame({"A":[7,8],"B":[np.NaN,np.NaN]})



   A    B    |     A  B
0  2.0  NaN  |  0  7  NaN
1  NaN  5.0  |  1  8  NaN

默认情况下,当我们使用 rfloordiv(~) 计算整数除法时,任何使用 NaN 的操作都会产生 NaN

df.rfloordiv(df_other)



   A    B
0  3.0  NaN
1  NaN  NaN

我们可以在使用fill_value参数进行整数除法之前填充NaN

df.rfloordiv(df_other, fill_value=2)



   A    B
0  3.0  NaN
1  2.0  0.0

请注意,如果整数除法在两个 NaN 之间,则结果将始终是 NaN,无论 fill_value 如何。

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 Pandas DataFrame | rfloordiv method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。