Python- 如果值在特定值范围内,则用 NaN 填充值

Python- To fill values with NaN if they are in a specific range of values

我正在处理一项要求,如果特定值落在特定范围内,我必须将其填写为 NaN。 下面是我的代码-

import pandas as pd
data = {'A': [1, 2,3,4,5], 'B': [3, 4,5,6,7]}
k=pd.DataFrame(data)

如果 no 大于 5,则将列中的这些特定值填写为 NaN。

所以 B 列会像 'B':[3,4,5,NaN,NaN]

我该怎么做?

您可以在此处使用np.where 条件,它遵循 np.where(condition/s, True Value, False Value) 的简单结构。 np.where 遵循基本的广播规则,因此如果不想提供 else 条件,那么您可以简单地传递 False Value 中的列。

如果您只想对 B 列进行操作:

k['B'] = np.where(k['B'] > 3, np.NaN, k['B'])

如果要对整个 DataFrame 执行:

for col in k.columns:
    k[col] = np.where(k[col] > 3, np.NaN, k[col])