我有一个数据框和一本字典:
df =
VARIABLE VALUE
A 3
A 4
A 60
A 5
B 1
B 2
B 3
B 100
C 0
C 1
# inclusive
accepted_ranges={
A:[3,5],
B:[1,3]
}
我想根据字典中接受的范围来清理VALUE列
df =
VARIABLE VALUE
A 3
A 4
A NaN
A 5
B 1
B 2
B 3
B NaN
C 0
C 1
我尝试过:使用map()
,但我似乎找不到一种通过变量组使用它的方法apply()
可以工作,但是,我认为,apply()
在我的数据帧(大于10万行)中工作非常慢。事先谢谢你
使用^{} 将词典映射到每个} 检查每个
VARIABLE
。然后我们使用^{VALUE
是否在范围内最后,我们使用^{} 将
False
值转换为NaN
快一点
.str
访问器的速度可能相当慢,并且大多是后台的“循环”实现。尤其是由于数据中有大约10万行,这可能会导致代码效率降低。我们可以通过在两个字典中拆分accepted_ranges
来解决这个问题,从而使用Series.map
创建两个向量:速度比较
布尔掩码
或
相关问题 更多 >
编程相关推荐