对屏蔽的数据帧应用转换



我有这个矩阵df.head():

0   1   2   3   4   5   6   7   8   9   ... 1848    1849    1850    1851    1852    1853    1854    1855    1856    1857
0   0.0 0.0 0.0 0.0 0.0 0.00000 0.0 0.0 0.0 0.00000 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
1   0.0 0.0 0.0 0.0 0.0 0.00000 0.0 0.0 0.0 0.00000 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2   0.0 0.0 0.0 0.0 0.0 0.00000 0.0 0.0 0.0 30.88689    ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
3   0.0 0.0 0.0 0.0 0.0 0.00000 0.0 0.0 0.0 0.00000 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
4   0.0 0.0 0.0 0.0 0.0 42.43819    0.0 0.0 0.0 0.00000 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
5 rows × 1858 columns

每次找到0.0以外的值时,我都需要对其进行转换,将该值除以0.32

到目前为止,我有口罩,就像这样:

normalize = 0.32
mask = (df>=0.0)
df = df.where(mask)

在屏蔽了一个非常大的数据帧之后,我如何将这样的转换应用于它?

您不需要mask,只需将数据帧除以0.32即可。

df / 0.32
>>> df
A  B
0  0  3
1  5  0
>>> df / 0.32
A      B
0   0.000  9.375
1  15.625  0.000

如果您需要使用掩码,请尝试;

mask = (df.eq(0))
df.where(mask, df/0.32)

最新更新