数据表【变量控制动态筛选】的技巧。

诺亚方舟 2023-4-28 462

数据表筛选时,对于多条件,全变量的字符串拼接方法,这些技巧也适用于字符串的其它用途:

三条件组合例子,要求列A大于等于1,列B包含字符串"2023",列C必须以字符串"ID"开头。

可视化编辑器生成的字符串为:

"A>=1 and B.str.contains(\"2023\") and C.str.startswith(\"ID\")"

有时候为了方便控制,列名和值都需要改成变量的形式,

上述字符串用到了转义,比如在外围是双引号的字符串内部还有双引号,那么就要用 \" 来将这个双引号表示为字符串内的双引号,而不是字符串结束的双引号。

不习惯转义的小伙伴,在阅读上述字符串感觉有点怪,其实上面的表达式有多种写法:

这里回顾一下字符串的三种表达方式,单引号,双引号和三引号。

1、因为字符串中有双引号出现,所以最外围用单引号,那么字符串内的双引号就不需要转义了。

'A>=1 and B.str.contains("2023") and C.str.startswith("ID")'

2、如果最外围用的双引号,字符串内部的双引号也可以用单引号替代。

"A>=1 and B.str.contains('2023') and C.str.startswith('ID')"

3、如果字符串内部即有双引号,又有单引号,这个时候不想转义,可以用三引号将字符串括起来。

'''A>=1 and B.str.contains('2023') and C.str.startswith("ID")'''

这三种写法的作用是一样的,这里只是说明书写字符串变量要灵活运用单引号,双引号和三引号,相类似的还有【元素特征字符串】和【文件路径字符串】,比较长的文本复制过来,不想手动添加转义,也可以用引号解决。

引号合适了,字符串加入变量也就轻松了,先将列名和条件值都声明成变量:

dim C1="列1",C2="列2",C3="列3"

dim V1="值1",V2="值2",V3="值3"

代入字符串,这时采用外围单引号方式,修改也很简单,如【2023】对应改成【'&V2&'】:

原字符串:

'A>=1 and B.str.contains("2023") and C.str.startswith("ID")'

代入后:

C1&'>='&V1&' and '&C2&'.str.contains("'&V2&'") and '&C3&'.str.startswith("'&V3&'")'


最新回复 (2)
返回
发新帖