Python datar包如何通过f表达式选取名称含空格的变量
datar f表达式选取含空格列名的实现方法
使用datar管道语法做列选取时,合法Python标识符格式的列名(比如frequency11)可以直接通过f.列名的形式传入,但含空格、特殊字符的列名不符合Python属性访问的语法规则,直接写f."Virus Particle"会触发语法报错,正确写法是使用方括号索引传入列名字符串:
from datar import f from datar.dplyr import select # 选取单个带空格的列 df >> select(f["Virus Particle"])
如果需要同时选取多列,混合无空格、带空格的列名可以组合使用两种写法:
# 同时选取frequency11和Virus Particle两列 df >> select(f.frequency11, f["Virus Particle"])
单纯做列筛选时,也可以直接给select传入列名字符串,但涉及列运算、条件筛选等复杂场景时,统一使用f[]的写法适配性更强,不会出现参数解析错误。
报错原因说明:Python语法规定,点号(
.)后的属性名必须是符合命名规则的合法标识符,空格、特殊符号不能出现在标识符中,即使给名称加引号也无法绕过该语法限制,所有不符合标识符规则的列名,都需要通过f["列名"]的索引形式传入。
内容的提问来源于stack exchange,提问作者Soumya Boral
相关产品推荐
相关产品推荐

