是否可以使用字典或映射来替换值? 我有这样的数据框:df
registerOnTouched() {
console.log('registerOnTouched called');
}
setDisabledState(isDisabled: boolean): void {
console.log('set disabled called with value ',isDisabled);
this.editor.setReadOnly(isDisabled);
}
,我还有另一个数据框,提供了品牌代码。当然,该df也可以更改为字典。 df1
Q14r63: Audi Q14r2: BMW Q14r1: VW
Selected Not Selected Not Selected
Not Selected Selected Selected
Selected Selected Not Selected
有什么方法可以通过汽车品牌更改主df中“选定”值的输出吗?
所需的输出
Brand Code
Audi 63
BMW 2
VW 1
到目前为止,我尝试过的操作:
Q14r63: Audi Q14r2: BMW Q14r1: VW
Audi NaN NaN
NaN BMW VW
Audi BMW NaN
但是我遇到错误v = df.columns.str.extract('(' + '|'.join(df1['Brand']) + ')', expand=False)
m = df.eq('Selected')
df = df.mask(m, v[None, :]).where(m)
对于一个数据框而言,它可以正常工作,但其他类似的数据框却出现上述错误
答案 0 :(得分:1)
我认为列中有一些特殊的正则表达式字符,因此请转义它们:
这意味着改变:
v = df.columns.str.extract('(' + '|'.join(df1['Brand']) + ')', expand=False)
收件人:
import re
v = df.columns.str.extract('(' + '|'.join(re.escape(x) for x in df1['Brand']) + ')', expand=False)