Polars 书中有关“列表上下文”的部分中的示例使用pl.col("")以空字符串""作为参数的表达式。
# the percentage rank expression
rank_pct = pl.col("").rank(reverse=True) / pl.col("").count()
Run Code Online (Sandbox Code Playgroud)
从上下文和输出我可以猜测pl.col("")表达式的作用。但API文档似乎没有涵盖空字符串作为参数的情况pl.col,我想知道这个用例中的确切含义。任何有用的答案将不胜感激!
小智 5
确切的含义是充当“根”表达式,在 List 上下文(即arr.eval(....). 我需要退后一步来解释......
一般来说,只允许某些类型的表达式来启动表达式(或作为表达式的“根”)。这些“根”表达式适用于特定的上下文(select, filter,with_column等)配合使用来识别正在处理的数据。
根表达式的一些示例包括polars.col, polars.apply, polars.map, polars.first, polars.last, polars.all, 和polars.any。(还有其他人。)
一旦我们声明了一个“根”表达式,我们就可以链接其他更通用的表达式来执行工作。例如,polars.col("my_col").sum().over(\'other_col\').alias(\'name\')。
列表上下文与大多数上下文略有不同。在列表上下文中,所处理的数据是明确的。只有一个数据列表。因此,polars.col和polars.first被选为在列表上下文中使用的“根”表达式。
通常,polars.col根表达式包含诸如表示列名的字符串或表示多个列的通配符表达式之类的信息。然而,这在列表上下文中是不需要的。只有一个选项 - 单个列表本身。
因此,提供给的任何字符串polars.col在列表上下文中都会被忽略。例如,从《Polars Guide》的代码来看,此代码也有效:
# Notice that I\'m referring to columns that do not exist...\nrank_pct = pl.col("foo").rank(reverse=True) / pl.col("bar").count()\nRun Code Online (Sandbox Code Playgroud)\n由于提供给polars.col表达式的任何字符串在列表上下文中都将被忽略,因此通常会提供单个空字符串"",只是为了防止不必要的混乱。
polars.element表达Polars 现在有一个polars.element专为在列表求值上下文中使用而设计的表达式。usingpolars.element现在被认为是列表上下文的惯用语,因为它避免了与 using 相关的混淆col(\xe2\x80\x9c\xe2\x80\x9d)。
| 归档时间: |
|
| 查看次数: |
1179 次 |
| 最近记录: |