【发布时间】:2020-02-22 06:14:29
【问题描述】:
我想根据特定列上的范围值条件,用 NaN 替换多个列的值范围。
即:假设我有[col1_min = 5, col1_max = 15] 和[col2_min = 2, col2_max = 20],并且这些列看起来像这样:
df = pd.DataFrame({'col1':[1,50,15,10,4], 'col2':[12,10,100,11,56]})
col1 col2
1 12
50 10
15 100
10 11
4 56
期望的输出是:
df_filtered
col1 col2
nan 12
nan 10
15 nan
10 11
4 nan
我可以做的伪代码是 groupby 边界内的每一列使用 'df.groupby('col1' or 'col2')' 然后过滤每一列然后合并回原来的但我想保留内存成本降到最低。
有什么方法可以轻松做到这一点?
【问题讨论】:
标签: python python-3.x pandas dataframe filter