Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pola-rs
GitHub Repository: pola-rs/polars
Path: blob/main/docs/source/src/python/user-guide/expressions/column-selections.py
7890 views
1
# --8<-- [start:selectors_df]
2
from datetime import date, datetime
3
4
import polars as pl
5
6
df = pl.DataFrame(
7
{
8
"id": [9, 4, 2],
9
"place": ["Mars", "Earth", "Saturn"],
10
"date": pl.date_range(date(2022, 1, 1), date(2022, 1, 3), "1d", eager=True),
11
"sales": [33.4, 2142134.1, 44.7],
12
"has_people": [False, True, False],
13
"logged_at": pl.datetime_range(
14
datetime(2022, 12, 1), datetime(2022, 12, 1, 0, 0, 2), "1s", eager=True
15
),
16
}
17
).with_row_index("index")
18
print(df)
19
# --8<-- [end:selectors_df]
20
21
# --8<-- [start:all]
22
out = df.select(pl.col("*"))
23
24
# Is equivalent to
25
out = df.select(pl.all())
26
print(out)
27
# --8<-- [end:all]
28
29
# --8<-- [start:exclude]
30
out = df.select(pl.col("*").exclude("logged_at", "index"))
31
print(out)
32
# --8<-- [end:exclude]
33
34
# --8<-- [start:expansion_by_names]
35
out = df.select(pl.col("date", "logged_at").dt.to_string("%Y-%h-%d"))
36
print(out)
37
# --8<-- [end:expansion_by_names]
38
39
# --8<-- [start:expansion_by_regex]
40
out = df.select(pl.col("^.*(as|sa).*$"))
41
print(out)
42
# --8<-- [end:expansion_by_regex]
43
44
# --8<-- [start:expansion_by_dtype]
45
out = df.select(pl.col(pl.Int64, pl.UInt32, pl.Boolean).n_unique())
46
print(out)
47
# --8<-- [end:expansion_by_dtype]
48
49
# --8<-- [start:selectors_intro]
50
import polars.selectors as cs
51
52
out = df.select(cs.integer(), cs.string())
53
print(out)
54
# --8<-- [end:selectors_intro]
55
56
# --8<-- [start:selectors_diff]
57
out = df.select(cs.numeric() - cs.first())
58
print(out)
59
# --8<-- [end:selectors_diff]
60
61
# --8<-- [start:selectors_union]
62
out = df.select(cs.by_name("index") | ~cs.numeric())
63
print(out)
64
# --8<-- [end:selectors_union]
65
66
# --8<-- [start:selectors_by_name]
67
out = df.select(cs.contains("index"), cs.matches(".*_.*"))
68
print(out)
69
# --8<-- [end:selectors_by_name]
70
71
# --8<-- [start:selectors_to_expr]
72
out = df.select(cs.temporal().as_expr().dt.to_string("%Y-%h-%d"))
73
print(out)
74
# --8<-- [end:selectors_to_expr]
75
76
# --8<-- [start:selectors_is_selector_utility]
77
from polars.selectors import is_selector
78
79
out = cs.numeric()
80
print(is_selector(out))
81
82
out = cs.boolean() | cs.numeric()
83
print(is_selector(out))
84
85
out = cs.numeric() + pl.lit(123)
86
print(is_selector(out))
87
# --8<-- [end:selectors_is_selector_utility]
88
89
# --8<-- [start:selectors_colnames_utility]
90
from polars.selectors import expand_selector
91
92
out = cs.temporal()
93
print(expand_selector(df, out))
94
95
out = ~(cs.temporal() | cs.numeric())
96
print(expand_selector(df, out))
97
# --8<-- [end:selectors_colnames_utility]
98
99