当前位置: 首页 > news >正文

pandas polars 数据类型转换

数据类型PythonPolarsPandas详情
BooleanBooleanBoolean有效进行位打包的布尔类型。
Int8Int8Int88可变精度有符号整数类型。8位有符号整数,取值范围是 -128 到 127。
Int16Int16Int1616可变精度有符号整数类型。16位有符号整数,取值范围是 -32768 到 32767。
Int32Int32Int3232可变精度有符号整数类型。32位有符号整数,取值范围是 -2147483648 到 2147483647。
Int64Int64Int6464可变精度有符号整数类型。64位有符号整数,取值范围非常大。在64位系统上,这是默认的整数类型。此外,还有无符号整数类型,如 `uint8`、`uint16` 等,表示无符号的整数值。
UInt8UInt8UInt88可变精度无符号整数类型。
UInt16UInt16UInt1616可变精度无符号整数类型。
UInt32UInt32UInt3232可变精度无符号整数类型。
UInt64UInt64UInt6464可变精度无符号整数类型。
Float32Float32Float3232可变精度有符号浮点数。32位单精度浮点数。
Float64Float64Float6464可变精度有符号浮点数。64位双精度浮点数,在64位系统上是默认的浮点类型。它可以表示带有小数部分的数值,例如 `3.14` 。
DecimalDecimal十进制128位类型,具有可选的精度和非负小数位数。如果您需要对浮点数的精度以及对它们执行的作进行精细控制,请使用此选项。请参阅 Python的十进制。Decimal 提供有关什么是decimal数据类型的文档。
StringString可变长度UTF-8编码的字符串数据,通常为人类可读。
BinaryBinary存储任意长度的原始二进制数据。
DateDate表示日历日期。
TimeTime表示一天中的某个时间。
DatetimeDatetime表示日历日期和时间。
DurationDuration表示持续时间。
ArrayArray每个序列具有已知固定形状的数组;类似于NumPy数组。详细了解数组和列表的区别以及如何使用两者。
ListList长度可变的均质1D容器。详细了解数组和列表的区别以及如何使用两者。
ObjectObject包装任意Python对象。
CategoricalCategorical对字符串数据进行高效编码,其中类别是在运行时推断的。详细了解分类和枚举的区别以及如何使用两者。
EnumEnum对一组预先确定的字符串类别进行高效的有序编码。详细了解分类和枚举的区别以及如何使用两者。
StructStruct可以存储多个字段的复合产品类型。在其专门的文档部分了解更多关于数据类型 Struct 的信息。
Null表示null值。

import pandas as pd
import polars as pldf = pd.DataFrame({'text_to_float': ["3.1415926", "2.71828", "invalid"],'text_to_int': ["123", "456.7", "789"],'text_to_date': ["2023-01-01", "15/02/2023", "invalid"],'numeric': [3.1415926, 2.71828, 1.0]
})# 批量转换
df['float64'] = pd.to_numeric(df['text_to_float'], errors='coerce').round(4)
df['float64'].fillna(0,inplace=True)
df['float32'] = df['float64'].astype('float32')
df['int64'] = pd.to_numeric(df['text_to_int'], errors='coerce').round().astype('Int64')
df['datetime'] = pd.to_datetime(df['text_to_date'],format="%Y-%m-%d %H:%M:%S", errors='coerce')
df['datetime'].fillna(pd.to_datetime("1970-01-01",format="%Y-%m-%d %H:%M:%S"),inplace=True)  # 替换给指定日期
df['date_to_text'] = df['datetime'].dt.strftime('%Y-%m-%d')
df['date_to_text'].fillna("1970-01-01",inplace=True)
df['numeric_to_text'] = df['numeric'].apply(lambda x: f"{x:.4f}")
df['numeric_to_text'] = df['numeric'].round(4).astype(str)  # 先四舍五入再转文本print(df)
print(df.dtypes)  # 查看各列类型

import pandas as pd
import polars as pldf = pl.DataFrame({"text_float": ["3.1415926", "2.71828", "invalid"],"text_int": ["123", "456.0", "invalid"],"date_text": ["2023-01-01", "15/02/2023", "invalid"],"numeric": [3.1415926, 2.71828, 1.0],"numeric_www": [3.1415926, 2.71828, 2]
})df = df.with_columns(# 文本→浮点  先转数值→转失败为null→null替换为0pl.col("text_float").cast(pl.Float64,strict=False).fill_null(0).round(4).alias("float64"),# 文本→整数  先转数值→转失败为null→null替换为0pl.col("text_int").cast(pl.Float64,strict=False).cast(pl.Int64,strict=False).alias("int64").fill_null(0),# 文本→日期(指定格式)  文本→先转日期→转失败为null→null替换为指定日期文本→再转日期# pl.col("date_text").str.to_date().alias("datetime"),pl.col("date_text").str.strptime(pl.Date, "%Y-%m-%d",strict=False)     # 文本→先转日期.fill_null("2023-01-02").str.strptime(pl.Date, "%Y-%m-%d"),   # null替换为指定日期文本# 日期→文本   日期→# pl.col("date_text").strftime("%Y-%m-%d").alias("date_str"),# pl.col("date_text").cast(pl.Utf8).alias("date_str"),pl.col("date_text").str.strptime(pl.Date, "%Y-%m-%d", strict=False)  # 先转为日期类型.fill_null("2023-01-02").str.strptime(pl.Date, "%Y-%m-%d").dt.strftime("%Y年%m月%d日")                      # 再格式化为目标文本.alias("date_str"),# 其他转文本pl.col("numeric_www").cast(pl.Utf8, strict=False).alias("numeric_www_str"),# 数值→文本# pl.col("numeric").round(4).apply(lambda x: f"{x:.4f}").alias("numeric_str")
)print(df)
print(df.dtypes)
print(df.schema)

 

http://www.lryc.cn/news/572664.html

相关文章:

  • 【pdf】Java代码生成PDF
  • lingma(阿里云Ai)结合idea使用
  • uni-app-配合iOS App项目开发apple watch app
  • Python按钮点击事件快速入门
  • vue3 reactive重新赋值
  • VSCode1.101.1Win多语言语言编辑器便携版安装教程
  • 【Dify精讲】第14章:部署架构与DevOps实践
  • 字符编码(UTF-8,16,32 和GBK和ASCLL码)
  • 三维视频融合平台:如何构建动态感知的数字空间
  • 配置Fiori应用时报错
  • 从语音到字幕,视频剪辑效率翻倍方案
  • vtk和opencv和opengl直接的区别是什么?
  • Web Splats
  • 每天一个前端小知识 Day 7 - 现代前端工程化与构建工具体系
  • 设计模式实战指南:从源码解析到Java后端架构的艺术
  • mysql查询使用`_rowid` 虚拟列
  • Apipost 签约锐捷网络:AI赋能,共推 ICT 领域 API 生态智能化升级
  • (链表:哈希表 + 双向链表)146.LRU 缓存
  • 性能测试-jmeter实战3
  • 二十二章 stable diffusion SDXL1.0模型 介绍
  • 期货反向跟单-终止盘手合作原则(二)
  • 原点安全入选 Gartner®“数据安全平台”中国市场指南代表厂商
  • Mac电脑-SSH客户端-Termius
  • JetBrains IDE v2025.1 升级,AI 智能+语言支持齐飞
  • Kafka协议开发总踩坑?3步拆解二进制协议核心
  • OpenGL和OpenGL ES区别
  • 可编辑64页PPT | 基于DeepSeek的数据治理方案
  • SaaS+AI架构实战,
  • AWS CloudFormation 实战:使用 App Runner 部署 GlowChat 连接器服务
  • 【AI驱动网络】