| name | polars-1-dataframe-creation-and-io |
| description | Sub-skill of polars: 1. DataFrame Creation and I/O. |
| version | 1.0.0 |
| category | data-analysis |
| type | reference |
| scripts_exempt | true |
1. DataFrame Creation and I/O
1. DataFrame Creation and I/O
Creating DataFrames:
import polars as pl
import numpy as np
from datetime import datetime, date
df = pl.DataFrame({
"id": [1, 2, 3, 4, 5],
"name": ["Alice", "Bob", "Charlie", "Diana", "Eve"],
"value": [100.5, 200.3, 150.7, 300.2, 250.8],
"category": ["A", "B", "A", "C", "B"],
"timestamp": [
datetime(2025, 1, 1, 10, 0),
datetime(2025, 1, 2, 11, 30),
datetime(2025, 1, 3, 9, 15),
datetime(2025, 1, 4, 14, 45),
datetime(2025, 1, 5, 16, 0),
]
})
print(df)
print(f"Shape: {df.shape}")
print(f"Schema: {df.schema}")
np_data = np.random.randn(1000, 5)
df_numpy = pl.DataFrame(
np_data,
schema=["col_a", "col_b", "col_c", "col_d", "col_e"]
)
records = [
{"x": 1, "y": "a"},
{"x": 2, "y": "b"},
{"x": 3, "y": "c"}
]
df_records = pl.DataFrame(records)
df_typed = pl.DataFrame(
{
"integers": [1, 2, 3],
"floats": [1.0, 2.0, 3.0],
"strings": ["a", "b", "c"]
},
schema={
"integers": pl.Int32,
"floats": pl.Float64,
"strings": pl.Utf8
}
)
Reading Files:
df = pl.read_csv("data.csv")
df = pl.read_csv(
"data.csv",
separator=",",
has_header=True,
skip_rows=0,
n_rows=10000,
columns=["col1", "col2", "col3"],
dtypes={"id": pl.Int64, "value": pl.Float32},
null_values=["NA", "N/A", ""],
ignore_errors=True,
try_parse_dates=True,
encoding="utf8"
)
df = pl.read_parquet("data.parquet")
df = pl.read_parquet("data/*.parquet")
df = pl.read_parquet(
"large_data.parquet",
columns=["id", "value", "date"],
n_rows=100000,
row_count_name="row_nr"
)
df = pl.read_json("data.json")
df = pl.read_ndjson("data.jsonl")
df = pl.read_excel("data.xlsx", sheet_name="Sheet1")
df = pl.read_delta("delta_table/")
df = pl.read_database(
query="SELECT * FROM sales WHERE date > '2025-01-01'",
connection=
)
df = pl.read_csv()
Writing Files:
df.write_csv("output.csv")
df.write_parquet(
"output.parquet",
compression="zstd",
compression_level=3,
statistics=True,
row_group_size=100000
)
df.write_json("output.json", row_oriented=True)
df.write_ndjson("output.jsonl")
df.write_delta("delta_table/", mode="overwrite")
df.write_ipc("output.arrow")