У меня есть объект json следующей структуры:
Код: Выделить всё
json_obj = [
{"timestamp": "2024-10-01T21:23:23Z", "value": 31},
{"timestamp": "2024-10-01T23:44:11.124Z", "value": -453.2}
]
Когда я создаю DataFrame:
Код: Выделить всё
json_obj = [
{"timestamp": "2024-10-01T21:23:23Z", "value": 31},
{"timestamp": "2024-10-01T23:44:11.124Z", "value": -453.2}
]
df = pl.DataFrame(json_obj)
print(df)
Код: Выделить всё
shape: (2, 2)
┌──────────────────────────┬────────┐
│ timestamp ┆ value │
│ --- ┆ --- │
│ str ┆ f64 │
╞══════════════════════════╪════════╡
│ 2024-10-01T21:23:23Z ┆ 31.0 │
│ 2024-10-01T23:44:11.124Z ┆ -453.2 │
└──────────────────────────┴────────┘
Код: Выделить всё
df = df.cast({"timestamp": pl.Datetime})
print(df)
Код: Выделить всё
shape: (2, 2)
┌─────────────────────────┬────────┐
│ timestamp ┆ value │
│ --- ┆ --- │
│ datetime[μs] ┆ f64 │
╞═════════════════════════╪════════╡
│ 2024-10-01 21:23:23 ┆ 31.0 │
│ 2024-10-01 23:44:11.124 ┆ -453.2 │
└─────────────────────────┴────────┘
Однако, если я воссоздаю то же самое dataframe, но на этот раз замените столбец временной метки строковой операцией:
Код: Выделить всё
json_obj = [
{"timestamp": "2024-10-01T21:23:23Z", "value": 31},
{"timestamp": "2024-10-01T23:44:11.124Z", "value": -453.2}
]
df = pl.DataFrame(json_obj)
df = df.with_columns(pl.col("timestamp").str.to_datetime())
print(df)
Код: Выделить всё
shape: (2, 2)
┌─────────────────────────────┬────────┐
│ timestamp ┆ value │
│ --- ┆ --- │
│ datetime[μs, UTC] ┆ f64 │
╞═════════════════════════════╪════════╡
│ 2024-10-01 21:23:23 UTC ┆ 31.0 │
│ 2024-10-01 23:44:11.124 UTC ┆ -453.2 │
└─────────────────────────────┴────────┘
Может ли кто-нибудь объяснить, почему кастинг ведет себя по-другому?
Подробнее здесь: https://stackoverflow.com/questions/792 ... n-while-co