我有一个字典,其中包含几个熊猫面具作为特定数据帧的字符串,但是我找不到使用这些面具的方法。
这是一个简短的可复制示例:
import { Routes, RouterModule } from '@angular/router';
const routes: Routes = []; // Define your route
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
我想做类似的事情:
df = pd.DataFrame({'age' : [10, 24, 35, 67], 'strength' : [0 , 3, 9, 4]})
masks = {'old_strong' : "(df['age'] >18) & (df['strength'] >5)",
'young_weak' : "(df['age'] <18) & (df['strength'] <5)"}
但是由于掩码是字符串,所以会出现错误
df[masks['young_weak']]
答案 0 :(得分:4)
将DataFrame.query
与更改的字典一起使用:
assoc-in
答案 1 :(得分:0)
另一种方法是将掩码设置为函数(lambda
表达式)而不是字符串。这有效:
masks = {'old_strong' : lambda row: (row['age'] >18) & (row['strength'] >5),
'young_weak' : lambda row: (row['age'] <18) & (row['strength'] <5)}
df[masks['young_weak']]
答案 2 :(得分:0)
虽然不安全的解决方案是非常不好的做法,但是解决该问题的唯一方法是使用eval
:
print(df[eval(masks['young_weak'])])
输出:
age strength
0 10 0
这是link不好的原因。