Selectors
- 内容
- 使用例子
在 Polars 中,选择器用于在 DataFrame 或 LazyFrame 中选择和操作数据。它们提供了类似于 SQL 选择器的操作方式,使得代码更加简洁和易读。以下是选择器部分的内容及使用示例:
内容
- 导入 (Import)
col()
: 从 DataFrame 或 LazyFrame 中选择一列。lit()
: 创建一个字面量值,可以在表达式中使用。
- 集合操作 (Set Operations)
union()
: 合并两个 DataFrame 或 LazyFrame,并移除重复行。intersect()
: 返回两个 DataFrame 或 LazyFrame 中的共同行。except_()
: 返回第一个 DataFrame 或 LazyFrame 中存在,而第二个中不存在的行。
- 函数 (Functions)
when()
: 用于条件表达式。then()
: 如果when()
中的条件为真,则返回的值。otherwise()
: 如果when()
中的条件为假,则返回的值。
使用例子
import polars as pl
# 创建一个DataFrame
df = pl.DataFrame({
"姓名": ["Alice", "Bob", "Charlie"],
"年龄": [25, 30, 35],
"身高": [165, 175, 180]
})
# 使用col()选择器选择一列
选择的列 = df.select(pl.col("姓名"))
# 使用lit()选择器创建一个字面量
字面量 = df.with_column(pl.lit("常量").alias("新列"))
# 使用union()集合操作合并两个DataFrame
df1 = pl.DataFrame({"姓名": ["Alice", "Bob"]})
df2 = pl.DataFrame({"姓名": ["Charlie", "David"]})
合并的DataFrame = df1.union(df2)
# 使用intersect()集合操作找出两个DataFrame的交集
交集的DataFrame = df1.intersect(df2)
# 使用except_()集合操作找出df1中存在而df2中不存在的行
差集的DataFrame = df1.except_(df2)
# 使用when(), then(), otherwise()函数进行条件表达式
条件表达式 = pl.when(pl.col("年龄") > 30).then("老年").otherwise("年轻")
带有条件表达式的DataFrame = df.with_column(条件表达式.alias("年龄分类"))
# 输出结果
print(f"选择的列: {选择的列}")
print(f"字面量: {字面量}")
print(f"合并的DataFrame: {合并的DataFrame}")
print(f"交集的DataFrame: {交集的DataFrame}")
print(f"差集的DataFrame: {差集的DataFrame}")
print(f"带有条件表达式的DataFrame: {带有条件表达式的DataFrame}")
这些示例展示了如何使用选择器来选择列、创建字面量、执行集合操作以及使用条件表达式。通过这些操作,可以有效地对数据进行选择和转换,从而进行更复杂的数据分析。