Python pandas.DataFrame.mod函数方法的使用

DataFrame.mod 函数用于获取 DataFrame 中元素与另一个 DataFrame 或一个常数进行模运算(取余数)的结果。这个方法非常适合处理涉及周期性数据的计算问题。适合时间/周期性数据处理(如:每7天循环,df['day'].mod(7)),数据归一化到固定范围内,清理数据时用 fill_value 避免 NaN 带来的问题。本文主要介绍一下Pandas中pandas.DataFrame.mod方法的使用。

DataFrame.mod(self, other, axis='columns', level=None, fill_value=None)      [source]

获取dataframe和其他元素的模(二进制操作符mod)。

等价于dataframe % other,但是支持用fill_value替换某个输入中丢失的数据。与反向版本,rmod

在灵活的包装器(add,sub,mul,div,mod,pow)算术运算符:+,-,*,/,//,%,**

参数

other : scalar,sequence, Series, 或 DataFrame

axis : {0 or ‘index’, 1 or ‘columns’}

是按索引(0 或 ‘index’) 还是按列 (1 或 ‘columns’)进行比较。

对于Series输入,轴上要匹配Series索引。

level : intlabel

在一个级别上广播,在传递的MultiIndex级别上匹配索引值。

fill_value: floatNone,默认为None

在计算之前,用这个值填充现有的缺失值(NaN)

和成功的DataFrame对齐所需的任何新元素。

如果两个对应的DataFrame位置中的数据都丢失了,

那么结果也将丢失。

返回值

DataFrame

算术运算的结果。

Notes

不匹配的索引将合并在一起。

例子

1)DataFrame 和标量取模

import pandas as pd

df = pd.DataFrame({
    'A': [10, 20, 30],
    'B': [3, 6, 9]
})

print(df.mod(4))  # 等同于 df % 4

2)DataFrame 与另一个 DataFrame 按元素取模

import pandas as pd

df = pd.DataFrame({
    'A': [10, 20, 30],
    'B': [3, 6, 9]
})


df2 = pd.DataFrame({
    'A': [4, 5, 6],
    'B': [2, 3, 4]
})

print(df.mod(df2))

3)指定 fill_value 处理缺失值

import pandas as pd

df3 = pd.DataFrame({
    'A': [10, None, 30],
    'B': [3, 6, None]
})

print(df3.mod(4, fill_value=0))

推荐阅读
cjavapy编程之路首页