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])
我正在处理一项要求,如果特定值落在特定范围内,我必须将其填写为 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])