่ถ ้ซ้DataFrameใฉใคใใฉใชใผใPolarsใใซใคใใฆ
ใฏใใใซ
ใใๆ่ฟใPolarsใซใคใใฆ่ชฟในใไธญใง่ฒใ ใจ้ข็ฝใใใ ใจๆใ็พๅจๅๅผทไธญใงใใไปๅใฎ่จไบใงใฏๅๅผทๅ ๅฎนใฎๆด็ใๅ ผใญใฆใPolarsใฎ็น่ฒใ็ดนไปใงใใใฐใจๆใฃใฆใใพใใ
Polarsใจใฏ
RustใจPythonใงไฝฟใใ[1]่ถ
้ซ้("Blazingly fast")DataFrameใฉใคใใฉใชใผใใคใพใใใผใฟ่งฃๆใซไฝฟใใใฉใคใใฉใชใผใจใชใใพใใpandasใซๅฏพใใPolars(ใใใใพ)ใงใใๆด่ฝใฆใใใชใจๆใใพใใ
Core้จๅใฏRustใงๅฎ่ฃ
ใใใฆใใใใคใณใฟใผใใงใผในใจใใฆPythonใใใๅผใณๅบใใใใใซใชใฃใฆใใพใใRustใใPythonใใใฑใผใธใธใฎใใซใใฏmaturin(PyO3)ใไฝฟใฃใฆใใพใใ
็ฐๅข
่จไบไฝๆๆใฎOSใ่จ่ชใใฉใคใใฉใชใผใฎใใผใธใงใณใฏไปฅไธใซใชใใพใใ้ข้ฃใๅผทใใใชใใฎใฎใฟๆ็ฒใใฆใใพใใ
Ubntu 22.04
Python 3.10.6 (main, Nov 2 2022, 18:53:38) [GCC 11.3.0] on linux
maturin 0.13.7
pandas 1.5.2
polars 0.15.2
pyarrow 11.0.0.dev141
cargo 1.67.0-nightly (eb5d35917 2022-11-17)
rustc 1.67.0-nightly (ff8c8dfbe 2022-11-22)
ใชใใPolars่ชไฝใฏใพใ ใพใ ้็บไธญใงใใๆฅใ ๆดๆฐใใใฆใใพใใ(ใใฎ่จไบใๆธใใฆใใ้ใซใใใผใธใงใณใ0.15.6ใพใงๆดๆฐใใใฆใใพใ๏ผ)
้ซ้ๅใฎ่ๆฏ
ใใผใฟใใฉใผใใใ
Apache Arrowใจใใๅๆๅใฎใคใณใกใขใชๅใใผใฟใใฉใผใใใใใใผในใซใใฆใฉใคใใฉใชใผใๅฎ่ฃ ใใใฆใใพใใใใๆญฃ็ขบใซ่จใใจใArrow2ใจใใApach Arrowๅฝขๅผใฎcrateใไฝฟใฃใฆๅฎ่ฃ ใใฆใใพใใ็ตๆใใใใใใฎใใผใฟๅฆ็ใ้ใใงใใๅฎ้ใซๅฎ็พฉใใใฆใใใใผใฟๅใซใคใใฆใฏใฆใผใถใผใฌใคใใซ่ชฌๆใใใใพใใ
Lazy API
PolarsใงใฏDataFrameใๆไฝใใใฏใจใชใผใซใคใใฆใ่ฉไพกใใใฟใคใใณใฐใ"Lazy"(้
ๅปถ็)ใ"Eager"(้ๆฌก็)ใๅใใใใจใใงใใพใใLazyใซใใๅ ดๅใPolarsใงใฏใฏใจใชใผ้ใฎไธฆๅๅใจๆ้ฉๅใใใฉใณใใณใฐใใใใใใใใชใ้ซ้ๅใๅฎ็พใงใใพใใ
ใใใคใไพ[2]ใๆ็คบใใฆใฟใพใใ
>>> import polars as pl
>>> pl.Config.set_tbl_rows(2) # ่กใฎ่กจ็คบ็็ฅใฎใใ
<class 'polars.cfg.Config'>
>>> pl.read_csv("PS.csv", skip_rows=290)
shape: (33796, 287)
โโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโฌโโโโโโฌโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
โ rowid โ pl_name โ hostname โ pl_letter โ ... โ st_nrvc โ st_nspec โ pl_nespec โ pl_ntranspec โ
โ --- โ --- โ --- โ --- โ โ --- โ --- โ --- โ --- โ
โ i64 โ str โ str โ str โ โ i64 โ i64 โ i64 โ i64 โ
โโโโโโโโโชโโโโโโโโโโโชโโโโโโโโโโโชโโโโโโโโโโโโชโโโโโโชโโโโโโโโโโชโโโโโโโโโโโชโโโโโโโโโโโโชโโโโโโโโโโโโโโโก
โ 1 โ 11 Com b โ 11 Com โ b โ ... โ 2 โ 0 โ 0 โ 0 โ
โโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโผโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโโโโโโโโค
โ ... โ ... โ ... โ ... โ ... โ ... โ ... โ ... โ ... โ
โโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโผโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโโโโโโโโค
โ 33796 โ xi Aql b โ xi Aql โ b โ ... โ 1 โ 0 โ 0 โ 0 โ
โโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโดโโโโโโดโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโดโโโโโโโโโโโโโโโ
>>> (df := pl.scan_csv("PS.csv", skip_rows=290))
<polars.LazyFrame object at 0x7F99301331C0>
>>> df.collect()
shape: (33796, 287)
โโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโฌโโโโโโฌโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
โ rowid โ pl_name โ hostname โ pl_letter โ ... โ st_nrvc โ st_nspec โ pl_nespec โ pl_ntranspec โ
โ --- โ --- โ --- โ --- โ โ --- โ --- โ --- โ --- โ
โ i64 โ str โ str โ str โ โ i64 โ i64 โ i64 โ i64 โ
โโโโโโโโโชโโโโโโโโโโโชโโโโโโโโโโโชโโโโโโโโโโโโชโโโโโโชโโโโโโโโโโชโโโโโโโโโโโชโโโโโโโโโโโโชโโโโโโโโโโโโโโโก
โ 1 โ 11 Com b โ 11 Com โ b โ ... โ 2 โ 0 โ 0 โ 0 โ
โโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโผโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโโโโโโโโค
โ ... โ ... โ ... โ ... โ ... โ ... โ ... โ ... โ ... โ
โโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโผโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโโโโโโโโค
โ 33796 โ xi Aql b โ xi Aql โ b โ ... โ 1 โ 0 โ 0 โ 0 โ
โโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโดโโโโโโดโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโดโโโโโโโโโโโโโโโ
read_csvใcsvใฎ่ชญใฟ่พผใฟ็ตๆใ้ๆฌก็ใซ่ฟใใฆใใใฎใซๅฏพใใscan_csvใฏใณใผใซๆ็นใงใฏLazyFrameใชใใธใงใฏใใ่ฟใใฆใใพใใใใฎๅพใฎcollectใซใใฃใฆ่ชญใฟ่พผใฟๅฆ็ใ้
ๅปถ่ฉไพกใใใฆใใพใใ
ใใๅฐใๅฆ็ใ่ฟฝๅ ใใฆๆ้ฉๅใไธฆๅๅใฎๅนๆใซใคใใฆ็ขบ่ชใใพใใ
import polars as pl
def main() -> None:
radius_by_method = (
pl.scan_csv("PS.csv", skip_rows=290)
.groupby("discoverymethod")
.agg([
pl.count(),
pl.col("pl_rade").mean().alias("Planet Radius [Earth Radius]"),
pl.col("pl_rade").max().alias("Max. Planet Radius"),
pl.col("pl_rade").min().alias("Min. Planet Radius"),
])
.sort("count", reverse=True)
.limit(4)
)
print(radius_by_method.collect())
if __name__ == "__main__":
main()
็ณปๅคๆๆใฎ่ฆณๆธฌๆๆณใใจใซใฐใซใผใๅใใใๆๆๅๅพใฎๅนณๅๅคใจๆๅคงๅคใๆๅฐๅคใ็ฎๅบใใพใ[3]ใ
Eagerใชๅ ดๅ
scan_csvใread_csvใซๅคใใฃใใ ใใงใใ
import polars as pl
def main() -> None:
radius_by_method = (
pl.read_csv("PS.csv", skip_rows=290)
.groupby("discoverymethod")
.agg([
pl.count(),
pl.col("pl_rade").mean().alias("Planet Radius [Earth Radius]"),
pl.col("pl_rade").max().alias("Max. Planet Radius"),
pl.col("pl_rade").min().alias("Min. Planet Radius"),
])
.sort("count", reverse=True)
.limit(4)
)
print(radius_by_method)
if __name__ == "__main__":
main()
$ time python lazy_example.py
shape: (4, 5)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโ
โ discoverymethod โ count โ Planet Radius [Earth Radius] โ Max. Planet Radius โ Min. Planet Radius โ
โ --- โ --- โ --- โ --- โ --- โ
โ str โ u32 โ f64 โ f64 โ f64 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโชโโโโโโโโชโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโชโโโโโโโโโโโโโโโโโโโโโชโโโโโโโโโโโโโโโโโโโโโก
โ Transit โ 30802 โ 5.111434 โ 3791.05 โ 0.27 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโค
โ Radial Velocity โ 2270 โ 7.211939 โ 16.264 โ 1.211 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโค
โ Microlensing โ 430 โ null โ null โ null โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโค
โ Transit Timing Variations โ 120 โ 2.206051 โ 3.01 โ 0.37 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโ
real 0m0.793s
user 0m0.784s
sys 0m0.040s
$ time python eager_example.py
shape: (4, 5)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโ
โ discoverymethod โ count โ Planet Radius [Earth Radius] โ Max. Planet Radius โ Min. Planet Radius โ
โ --- โ --- โ --- โ --- โ --- โ
โ str โ u32 โ f64 โ f64 โ f64 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโชโโโโโโโโชโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโชโโโโโโโโโโโโโโโโโโโโโชโโโโโโโโโโโโโโโโโโโโโก
โ Transit โ 30802 โ 5.111434 โ 3791.05 โ 0.27 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโค
โ Radial Velocity โ 2270 โ 7.211939 โ 16.264 โ 1.211 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโค
โ Microlensing โ 430 โ null โ null โ null โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโค
โ Transit Timing Variations โ 120 โ 2.206051 โ 3.01 โ 0.37 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโ
real 0m0.916s
user 0m9.997s
sys 0m0.184s
ใใใใใฎไธฆๅๅๆง่ฝใ่ฏใใฆๅฎๆ้ใซใปใผๅทฎใฏใใใพใใใใuser timeใซๅคงใใชๅทฎใ่ฆใใใพใใใใใฏLazyๆใฎๆ้ฉๅใซใใๅนๆใ ใจ่ช่ญใใฆใใพใใ
show_graphใกใฝใใใไฝฟใใจLazyFrameใฎใฏใจใชใผใใฉใณใๅฏ่ฆๅใใใใจใใงใใพใใ
radius_by_method.show_graph(optimized=True, show=False, output_path="optimized.png")
radius_by_method.show_graph(optimized=False, show=False, output_path="no_optimized.png")

ๆ้ฉๅใใ

ๆ้ฉๅใชใ
ไธใๆ้ฉๅใใใไธใๆ้ฉๅใชใใฎใฏใจใชใผใใฉใณใงใใCSV SCANใฎ้ใใฏใใใใใใใใจๆใใพใใๆ้ฉๅใใใงใฏ
ๅ่: EagerใใLazyใธใฎๅคๆ
lazyใกใฝใใใไฝฟใใใจใงEagerใใLazyใธๅใๆฟใใใใจใๅฏ่ฝใงใใ
@@ -6,2 +6,3 @@
pl.read_csv("PS.csv", skip_rows=290)
+ .lazy()
.groupby("discoverymethod")
@@ -16,3 +17,3 @@
)
- print(radius_by_method)
+ print(radius_by_method.collect())
ๆ้ฉๅใซใคใใฆ่ฃ่ถณ
optimizeๅ
ใ่ฆใใจใใฏใจใชใผใใฉใณใซๅฏพใใๅ็จฎๆ้ฉๅใ่ฟฝใใใจใใงใใพใใๅๆ้ฉๅใซใผใซใฎๆฆ่ฆใ็พๅจ็่งฃใงใใฆใใ็ฏๅฒใง่จ่ผใใพใใ
-
PredicatePushDown
่คๆฐใฎfilterๅฆ็ใใใฃใๅ ดๅใซใใใใใ็ตๅใใใผใฟ่ชญใฟ่พผใฟๆใซๅใใใฆ่กใใใใซใใพใใไปฅไธใซไพใ็คบใใพใใ
>>> import polars as pl
>>> qp = (
... pl.scan_csv("PS.csv", skip_rows=290)
... .filter(pl.col("pl_rade") > 10)
... .filter(pl.col("pl_masse") < 10)
... .select([
... "rowid", "pl_name", "hostname", "discoverymethod", "pl_rade", "pl_masse"
... ])
... )
>>> qp.collect()
shape: (1, 6)
โโโโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโฌโโโโโโโโโโโ
โ rowid โ pl_name โ hostname โ discoverymethod โ pl_rade โ pl_masse โ
โ --- โ --- โ --- โ --- โ --- โ --- โ
โ i64 โ str โ str โ str โ f64 โ f64 โ
โโโโโโโโโชโโโโโโโโโโโโโโชโโโโโโโโโโโโชโโโโโโโโโโโโโโโโโโชโโโโโโโโโโชโโโโโโโโโโโก
โ 25028 โ Kepler-51 d โ Kepler-51 โ Transit โ 11.8 โ 6.2 โ
โโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโโโ
>>> qp.show_graph(optimized=False, show=False, output_path="no_optimized.png")
>>> qp.show_graph(optimized=True, show=False, output_path="optimized.png")

ๆ้ฉๅใชใ

ๆ้ฉๅใใ
-
ProjectionPushdown
ใใผใฟในใญใฃใณๆใชใฉๅใฎ่ชญใฟ่พผใฟใๆ้ฉๅใใคใพใใฏใจใชใผใใฉใณใงๅฟ ่ฆใจใชใๅใฎใฟใ่ชญใฟ่พผใฟใพใใLazy APIใงๆใใไพใใใกใใซ่ฉฒๅฝใใ่ช่ญใงใใ -
TypeCoercionRule
็ฐใชใใใผใฟๅใๆใคๅใๆฏ่ผใใใ้ใฎๅใญใฃในใใฎใซใผใซใๅฎ็พฉใใฆใใพใใ -
SimplifyBooleanRule
x and falseใx and trueใชใฉ็ตๆใ่ชๆใชbooleanๆผ็ฎใๅฎ้ใฎๆผ็ฎๅใซๅ็ดๅใใพใใ -
SimplifyExprRule
ๅฏๆๆงใฎใใๆผ็ฎใnullๆผ็ฎใชใฉๅฎ้ใฎๆผ็ฎๅใซใฏใจใชใผๆไฝๅดใๅ็ดๅใใพใใ
Out of Core
ๆ้ฉๅใซใใใกใขใชใ็ฏ็ดใใใใฎใงใใใใใใงใๆฑใใใผใฟใRAMใซๅใพใใชใๅ ดๅใฏcollect(streaming=True)ใจstreamingใชใใทใงใณใๆๅฎใใใฐ่ฏใใจissueใซใฏใใใพใใใใ ใใใใกใใฏใพใ ใขใซใใก็ใฎๆฉ่ฝใจใชใใใใงใใ(API referenceใใ)
ใใฎไป
ไธฆๅๅใใกใขใชๅน็ใซใคใใฆใฏPolarsใฎAuthorใงใใRitchieๆฐใๆธใใๆ่ก่จไบใๅ่ใซใชใใพใใ(่จผๆๆธใฎๆ้ๅใใใใชใฎใง้ฒ่ฆงใฏ่ชๅทฑ่ฒฌไปปใงใ้กใใใพใโฆ)
pandasใจใฎ้ใ
ใฆใผใถใผใฌใคใใซใpandasใใๆฅใไบบๅใ[4]ใซ้ใใ่จ่ผใใใใผใธใใใใฎใงใใใใพใงใซ่ชฌๆใใฆใใไธฆๅๅใๆ้ฉๅไปฅๅคใฎ้จๅใๆ็ฒใใฆ็ดนไปใใพใใ
indexใซใคใใฆ
PolarsใงใฏDataFrameใซindexใใใใพใใใLazy APIใๅบๆฌใชใฎใงใindexใฎไฟๆใๅญๅจใฏไธฆๅๅใ้ปๅฎณใใ่ช่ญใงใใไป้ใใฆpandasใฎilocใlocใซ็ธๅฝใใใกใฝใใใใใใพใใใ(ๆญฃ็ขบใซ่จใใจใ้ๆจๅฅจใงใใEagerใขใผใใฎใฟใซๅฎ่ฃ
ใฏใใใฆใใใใใงใใๅ่
โ ใฆใผใถใผใซๆททไนฑใไธใใๅฏ่ฝๆงใใใใจใใฆใ2023ๅนด1ๆๆซ้ ใซใฆใผใถใผใฌใคใใซใใฃใ่จ่ผใไฟฎๆญฃใใใพใใใindexใซใคใใฆใฏ้ๆจๅฅจใงใชใใใใใคใใฎใฑใผในใงใฏๆๅนใชๅ ดๅใใใใจใใ่จ่ผใซใชใฃใฆใใพใใๅ่
ใใ ใใ้
ๅปถ่ฉไพกใฎๆฉๆตใฏๅใใใใชใใใใๆ้ฉๅใไธฆๅๅใจใฎใใฌใผใใชใใซใชใใพใใ)
ๅฎ้ใฎใใผใฟ้ธๆใซใฏselectใfilterใกใฝใใใไฝฟ็จใใพใใ
>>> df.select(["discoverymethod"]).first().collect()
shape: (1, 1)
โโโโโโโโโโโโโโโโโโโ
โ discoverymethod โ
โ --- โ
โ str โ
โโโโโโโโโโโโโโโโโโโก
โ Radial Velocity โ
โโโโโโโโโโโโโโโโโโโ
>>> df.filter(pl.col("pl_rade") > 100.0).first().collect()
shape: (1, 287)
โโโโโโโโโฌโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโโโฌโโโโโโฌโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
โ rowid โ pl_name โ hostname โ pl_letter โ ... โ st_nrvc โ st_nspec โ pl_nespec โ pl_ntranspec โ
โ --- โ --- โ --- โ --- โ โ --- โ --- โ --- โ --- โ
โ i64 โ str โ str โ str โ โ i64 โ i64 โ i64 โ i64 โ
โโโโโโโโโชโโโโโโโโโโโโโโโโชโโโโโโโโโโโโโโชโโโโโโโโโโโโชโโโโโโชโโโโโโโโโโชโโโโโโโโโโโชโโโโโโโโโโโโชโโโโโโโโโโโโโโโก
โ 14325 โ Kepler-1698 b โ Kepler-1698 โ b โ ... โ 0 โ 0 โ 0 โ 0 โ
โโโโโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโดโโโโโโดโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโดโโโโโโโโโโโโโโโ
โปrowidใฏๅ ใฎcsvใซๅซใพใใใใผใฟๅใซใชใใพใใ
ๆฌ ๆๅคใซใคใใฆ
PolarsใงใฏใใผใฟๅใApach Arrowๅฝขๅผใซๅบใฅใใใๆฌ ๆๅคใฏnullๅคใง่กจ็พใใใพใใ
>>> df = pl.DataFrame({"value": [1, None, 3]})
>>> df
shape: (3, 1)
โโโโโโโโโ
โ value โ
โ --- โ
โ i64 โ
โโโโโโโโโก
โ 1 โ
โโโโโโโโโค
โ null โ
โโโโโโโโโค
โ 3 โ
โโโโโโโโโ
>>> df.mean()
shape: (1, 1)
โโโโโโโโโ
โ value โ
โ --- โ
โ f64 โ
โโโโโโโโโก
โ 2.0 โ
โโโโโโโโโ
ๆๅณ็ใซNaNใไฝฟใใใจใใงใใพใใใNaNใฏๆฌ ๆๅคใจใฟใชใใใชใใใๅนณๅๅคใๅใ้ใชใฉๆณจๆใๅฟ
่ฆใงใใ(np.nanใฏfloatๅใงใใใใจใๆณจๆใในใ็นใงใ)
>>> import numpy as np
>>> df = pl.DataFrame({"value": [1, np.nan, 3]})
>>> df
shape: (3, 1)
โโโโโโโโโ
โ value โ
โ --- โ
โ f64 โ
โโโโโโโโโก
โ 1.0 โ
โโโโโโโโโค
โ NaN โ
โโโโโโโโโค
โ 3.0 โ
โโโโโโโโโ
>>> df.mean()
shape: (1, 1)
โโโโโโโโโ
โ value โ
โ --- โ
โ f64 โ
โโโโโโโโโก
โ NaN โ
โโโโโโโโโ
>>> df.fill_nan(None).mean()
shape: (1, 1)
โโโโโโโโโ
โ value โ
โ --- โ
โ f64 โ
โโโโโโโโโก
โ 2.0 โ
โโโโโโโโโ
ไป้ฒ: ใฉใคใใฉใชใผใฎๆงๆ
ๆนใใฆpolarsใชใใธใใชใซใคใใฆใงใใใRustใงๅฎ่ฃ
ใใใCore้จๅใจPythonใงๅฎ่ฃ
ใใใใคใณใฟใผใใงใผใน้จๅใซๅคงๅฅใใใใจใๅฏ่ฝใงใใๅ่
ใฏpolarsใใฃใฌใฏใใชไปฅไธใๅพ่
ใฏpy-polarsใใฃใฌใฏใใชไปฅไธใซใณใผใใๅญๅจใใฆใใพใใๅใใฃใฌใฏใใช็ดไธใซMakefileใใใใฎใงmake testใงใๅฎ่กใใใฐใใใซใใใใในใใพใง้ใใงๅฎ่กใใฆใใใพใใPython้ข้ฃใฏvenvใง็ฐๅขๆง็ฏใใฆใใใฎใงใใใซใๅพใฏpy-polarsใใฃใฌใฏใใชใงsource venv/bin/activateใๅฎ่กใใใฐ็ฐกๅใซใใใใฐใชใฉใใงใใพใใ
ใฝใผในใณใผใใฎใใฌใผในไพ
show_graph()ๅ
ใงๅผใใงใใto_dot()ใไพใซใฝใผในใณใผใใใใฌใผในใใใจไปฅไธๆตใใซใชใใพใใ
PythonๅดใฎLazyFrameใฏใฉในใจRustๅดใฎLazyFrameใฏใฉในใ็ตใถPyLazyFrameใฏใฉในใๅญๅจใใใใจใซๆณจๆใใฆใใ ใใใ
ๅฎ้ใซใณใใใใ็ฎๆใๅ ดๅใฏCONTRIBUTING.mdใซใ็ฎใ้ใใฆใใ ใใใ
-
Node.jsใงใไธๅฟไฝฟใใใฟใใใชใฎใงใใใใชใใธใใชใฎๆดๆฐ้ ปๅบฆใissueใ่ฆใ้ใใใกใคใณใฎใกใณใใใผใฏTS/JSใๅฐ้ๅคใงใใใใใฎ้ ๅใฏใณใใฅใใใฃใใใฎใณใณใใชใใฅใผใใซๅงใญใฆใใๅฐ่ฑกใๅผทใใงใใ โฉ๏ธ
-
ไพใงไฝฟ็จใใฆใใcsvใใผใฟใฏNASA Exoplanet Archiveใๆไพใใฆใใ็ณปๅคๆๆใฎใใผใฟใซใฟใญใฐใงใใ(61.3MB) โฉ๏ธ
-
ใซใฟใญใฐใงใฏ่ซๆใใจใฎๆธฌๅฎใใผใฟใ1่กใจใใฆใใใใใๅใๆๆใซๅฏพใใใใผใฟใ่คๆฐ่กๅญๅจใใใใไธ้จๅใnullใชๅ ดๅใใใใพใใๅพใฃใฆใใใใงใฏ็ตๆใฎ็ฉ็็ใชๆญฃใใใฏไฟ่จผใใพใใใPolarsใฎๆไฝไพใจใใฆๆ็คบใใฆใใพใใ โฉ๏ธ
-
ๅไบบ็ใซใฏpandasใจPolarsใงไฝฟ็จใฑใผในใ็ซถๅใใใจใฏใใใชใซๆใฃใฆใใพใใใๅ ฌๅผใฎใฆใผใถใผใฌใคใใpandasใฎ็ฅๅๅบฆใซใใใใฃใฆใ้ๅฃใๅบใใๆๅณใงใใผใธใไฝๆใใฆใใ่ช่ญใงใใ โฉ๏ธ
Discussion