Konvertieren Sie die Zeichenfolgenspalte ganz einfach in pl.datetime in PolarsPython

Python-Programme
Anonymous
 Konvertieren Sie die Zeichenfolgenspalte ganz einfach in pl.datetime in Polars

Post by Anonymous »

Stellen Sie sich einen Polars-Datenrahmen mit einer Spalte vom Typ str vor, die das Datum im Format „27. Juli 2020“ angibt.
Ich möchte diese Spalte in den Typ polars.datetime konvertieren, der sich vom Python-Standard datetime unterscheidet.

Code: Select all

import polars as pl
from datetime import datetime

df = pl.DataFrame({
"id": [1, 2],
"event_date": ["27 July 2020", "31 December 2020"]
})

df = df.with_columns(
pl.col("event_date").map_elements(lambda x: x.replace(" ", "-"))
.map_elements(lambda x: datetime.strptime(x, "%d-%B-%Y"))
)

Code: Select all

shape: (2, 2)
┌─────┬─────────────────────┐
│ id  ┆ event_date          │
│ --- ┆ ---                 │
│ i64 ┆ datetime[μs]        │
╞═════╪═════════════════════╡
│ 1   ┆ 2020-07-27 00:00:00 │
│ 2   ┆ 2020-12-31 00:00:00 │
└─────┴─────────────────────┘
Angenommen, wir versuchen, df weiterzuverarbeiten, um eine neue Spalte zu erstellen, die das Quartal des Jahres angibt, in dem ein Ereignis stattgefunden hat.

Code: Select all

df.with_columns(
pl.col("event_date").map_elements(lambda x: x.month)
.map_elements(lambda x: 1 if x in range(1,4) else 2 if x in range(4,7) else 3 if x in range(7,10) else 4)
.alias("quarter")
)

Code: Select all

shape: (2, 3)
┌─────┬─────────────────────┬─────────┐
│ id  ┆ event_date          ┆ quarter │
│ --- ┆ ---                 ┆ ---     │
│ i64 ┆ datetime[μs]        ┆ i64     │
╞═════╪═════════════════════╪═════════╡
│ 1   ┆ 2020-07-27 00:00:00 ┆ 3       │
│ 2   ┆ 2020-12-31 00:00:00 ┆ 4       │
└─────┴─────────────────────┴─────────┘
Wie würde ich das in Polars machen, ohne benutzerdefinierte Lambdas über map_elements anzuwenden?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post