Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统。 Pandas是其中的一种,使导入和分析数据更加容易。
Pandas dataframe.mask()函数返回与self形状相同的对象,并且其对应的条目来自cond为False的self,否则来自其他对象。另一个对象可以是标量,序列, DataFrame ,也可以是可调用的。遮罩方法是if-then惯用语的一种应用。对于调用DataFrame中的每个元素,如果cond为False,则使用该元素;否则为false。否则,将使用DataFrame other中的相应元素。
用法: DataFrame.mask(cond, other=nan, inplace=False, axis=None, level=None, errors=’raise’, try_cast=False, raise_on_error=None)
参数:
cond:如果cond为False,请保留原始值。如果为True,则用其他的相应值替换。如果cond是可调用的,则它在NDFrame上计算,并应返回布尔值NDFrame或数组。可调用对象不得更改输入NDFrame(尽管pandas不会对其进行检查)。
other:cond为True的条目将替换为其他条目的对应值。如果other是可调用的,则它在NDFrame上计算,并应返回标量或NDFrame。可调用对象不得更改输入NDFrame(尽管pandas不会对其进行检查)。
inplace:是否对数据执行适当的操作
axis:对齐轴(如果需要),默认为无
level:对齐级别(如果需要),默认为无
errors:str,{“ raise”,“ ignore”},默认“ raise”
引发允许引发异常,并忽略抑制异常。错误时返回原始对象。请注意,当前此参数不会影响结果,并且始终会强制转换为合适的dtype。
try_cast:尝试将结果转换回输入类型(如果可能),
返回值:wh:与调用者类型相同
范例1:采用mask()函数用-25替换 DataFrame 中大于10的所有值
# importing pandas as pd
import pandas as pd
# Creating the dataframe
df = pd.DataFrame({"A":[12, 4, 5, 44, 1],
"B":[5, 2, 54, 3, 2],
"C":[20, 16, 7, 3, 8],
"D":[14, 3, 17, 2, 6]})
# Print the dataframe
df
让我们使用dataframe.mask()函数用-25替换所有大于10的值
# replace values greater than 10 with -25
df.mask(df > 10, -25)
输出:
范例2:采用mask()具有可调用功能。更换所有Na值1000。
# importing pandas as pd
import pandas as pd
# Creating the dataframe
df = pd.DataFrame({"A":[12, 4, 5, None, 1],
"B":[7, 2, 54, 3, None],
"C":[20, 16, 11, 3, 8],
"D":[14, 3, None, 2, 6]})
# replace the Na values with 1000
df.mask(df.isna(), 1000))
输出: