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

网站建设怎么用长尾做标题点金推广优化公司

网站建设怎么用长尾做标题,点金推广优化公司,研发流程的六个阶段,平台类网站建设背景 polars学习系列文章,第3篇 数据类型转换。 该系列文章会分享到github,大家可以去下载jupyter文件 仓库地址:https://github.com/DataShare-duo/polars_learn 小编运行环境 import sysprint(python 版本:,sys.version.spli…

背景

polars学习系列文章,第3篇 数据类型转换。
该系列文章会分享到github,大家可以去下载jupyter文件
仓库地址:https://github.com/DataShare-duo/polars_learn

小编运行环境

import sysprint('python 版本:',sys.version.split('|')[0])
#python 版本: 3.11.5 import polars as plprint("polars 版本:",pl.__version__)
#polars 版本: 0.20.22

数据类型转换

数据类型转换,主要是通过 cast 方法来进行操作,该方法中有个参数 strict ,该参数决定当原数据类型不能转换为目标数据类型时,应该如何处理

  • 严格模式, strict=True(该参数默认是True),就会进行报错,打印出详细的错误信息
  • 非严格模式, strict=False ,不会报错,无法转换为目标数据类型的值都会被置为 null

pandas 中数据类型转换使用的是 astype 方法

示例

数值类型 Numerics
浮点型数值转换为整型时,会向下取整;大范围的数据类型转换为小范围数据类型时,如果数值溢出时,默认会报错,如果设置了 strict=False,则会被置为 null

df = pl.DataFrame({"integers": [1, 2, 3, 4, 5],"big_integers": [1, 10000002, 3, 10000004, 10000005],"floats": [4.0, 5.0, 6.0, 7.0, 8.0],"floats_with_decimal": [4.532, 5.5, 6.5, 7.5, 8.5],}
)print(df)
shape: (5, 4)
┌──────────┬──────────────┬────────┬─────────────────────┐
│ integers ┆ big_integers ┆ floats ┆ floats_with_decimal │
│ ------------                 │
│ i64      ┆ i64          ┆ f64    ┆ f64                 │
╞══════════╪══════════════╪════════╪═════════════════════╡
│ 114.04.532               │
│ 2100000025.05.5                 │
│ 336.06.5                 │
│ 4100000047.07.5                 │
│ 5100000058.08.5                 │
└──────────┴──────────────┴────────┴─────────────────────┘out=df.select(pl.col("integers").cast(pl.Float32).alias("integers_as_floats"),pl.col("floats").cast(pl.Int32).alias("floats_as_integers"),pl.col("floats_with_decimal").cast(pl.Int32).alias("floats_with_decimal_as_integers"))print(out)
shape: (5, 3)
┌────────────────────┬────────────────────┬─────────────────────────────────┐
│ integers_as_floats ┆ floats_as_integers ┆ floats_with_decimal_as_integers │
│ ---------                             │
│ f32                ┆ i32                ┆ i32                             │
╞════════════════════╪════════════════════╪═════════════════════════════════╡
│ 1.044                               │
│ 2.055                               │
│ 3.066                               │
│ 4.077                               │
│ 5.088                               │
└────────────────────┴────────────────────┴─────────────────────────────────┘#如果不溢出的类型转换,可以节省内存
out=df.select(pl.col("integers").cast(pl.Int16).alias("integers_smallfootprint"),pl.col("floats").cast(pl.Float32).alias("floats_smallfootprint"),)print(out)
shape: (5, 2)
┌─────────────────────────┬───────────────────────┐
│ integers_smallfootprint ┆ floats_smallfootprint │
│ ------                   │
│ i16                     ┆ f32                   │
╞═════════════════════════╪═══════════════════════╡
│ 14.0                   │
│ 25.0                   │
│ 36.0                   │
│ 47.0                   │
│ 58.0                   │
└─────────────────────────┴───────────────────────┘try:out = df.select(pl.col("big_integers").cast(pl.Int8))print(out)
except Exception as e:print(e)
#conversion from `i64` to `i8` failed in column 'big_integers' for 3 out of 5 values: [10000002, 10000004, 10000005]out=df.select(pl.col("big_integers").cast(pl.Int8, strict=False))
print(out)
shape: (5, 1)
┌──────────────┐
│ big_integers │
│ ---          │
│ i8           │
╞══════════════╡
│ 1            │
│ null         │
│ 3            │
│ null         │
│ null         │
└──────────────┘

字符串类型 Strings

df = pl.DataFrame({"integers": [1, 2, 3, 4, 5],"float": [4.0, 5.03, 6.0, 7.0, 8.0],"floats_as_string": ["4.0", "5.0", "6.0", "7.0", "8.0"],}
)print(df)
shape: (5, 3)
┌──────────┬───────┬──────────────────┐
│ integers ┆ float ┆ floats_as_string │
│ ---------              │
│ i64      ┆ f64   ┆ str              │
╞══════════╪═══════╪══════════════════╡
│ 14.04.0              │
│ 25.035.0              │
│ 36.06.0              │
│ 47.07.0              │
│ 58.08.0              │
└──────────┴───────┴──────────────────┘out=df.select(pl.col("integers").cast(pl.String),pl.col("float").cast(pl.String),pl.col("floats_as_string").cast(pl.Float64),)print(out)
shape: (5, 3)
┌──────────┬───────┬──────────────────┐
│ integers ┆ float ┆ floats_as_string │
│ ---------              │
│ strstr   ┆ f64              │
╞══════════╪═══════╪══════════════════╡
│ 14.04.0              │
│ 25.035.0              │
│ 36.06.0              │
│ 47.07.0              │
│ 58.08.0              │
└──────────┴───────┴──────────────────┘df = pl.DataFrame({"strings_not_float": ["4.0", "not_a_number", "6.0", "7.0", "8.0"]})
print(df)
shape: (5, 1)
┌───────────────────┐
│ strings_not_float │
│ ---               │
│ str               │
╞═══════════════════╡
│ 4.0               │
│ not_a_number      │
│ 6.0               │
│ 7.0               │
│ 8.0               │
└───────────────────┘#运行会报错
out=df.select(pl.col("strings_not_float").cast(pl.Float64))#设置非严格模式,忽略错误,置为null
out=df.select(pl.col("strings_not_float").cast(pl.Float64,strict=False))
print(out)
shape: (5, 1)
┌───────────────────┐
│ strings_not_float │
│ ---               │
│ f64               │
╞═══════════════════╡
│ 4.0               │
│ null              │
│ 6.0               │
│ 7.0               │
│ 8.0               │
└───────────────────┘

布尔类型 Booleans
数值型与布尔型可以相互转换,但是不允许字符型转换为布尔型

df = pl.DataFrame({"integers": [-1, 0, 2, 3, 4],"floats": [0.0, 1.0, 2.0, 3.0, 4.0],"bools": [True, False, True, False, True],}
)print(df)
shape: (5, 3)
┌──────────┬────────┬───────┐
│ integers ┆ floats ┆ bools │
│ ---------   │
│ i64      ┆ f64    ┆ bool  │
╞══════════╪════════╪═══════╡
│ -10.0    ┆ true  │
│ 01.0    ┆ false │
│ 22.0    ┆ true  │
│ 33.0    ┆ false │
│ 44.0    ┆ true  │
└──────────┴────────┴───────┘out=df.select(pl.col("integers").cast(pl.Boolean), pl.col("floats").cast(pl.Boolean))
print(out)
shape: (5, 2)
┌──────────┬────────┐
│ integers ┆ floats │
│ ------    │
│ boolbool   │
╞══════════╪════════╡
│ true     ┆ false  │
│ false    ┆ true   │
│ true     ┆ true   │
│ true     ┆ true   │
│ true     ┆ true   │
└──────────┴────────┘

时间类型 Dates
DateDatetime 等时间数据类型表示为自纪元(1970年1月1日)以来的天数(Date)和微秒数(Datetime),因此数值类型与时间数据类型能直接相互转换

字符串类型与时间类型,可以通过 dt.to_string、str.to_datetime进行相互转换

from datetime import date, datetimedf = pl.DataFrame({"date": pl.date_range(date(2022, 1, 1), date(2022, 1, 5), eager=True),"datetime": pl.datetime_range(datetime(2022, 1, 1), datetime(2022, 1, 5), eager=True),}
)print(df)
shape: (5, 2)
┌────────────┬─────────────────────┐
│ date       ┆ datetime            │
│ ------                 │
│ date       ┆ datetime[μs]        │
╞════════════╪═════════════════════╡
│ 2022-01-012022-01-01 00:00:00 │
│ 2022-01-022022-01-02 00:00:00 │
│ 2022-01-032022-01-03 00:00:00 │
│ 2022-01-042022-01-04 00:00:00 │
│ 2022-01-052022-01-05 00:00:00 │
└────────────┴─────────────────────┘out=df.select(pl.col("date").cast(pl.Int64),pl.col("datetime").cast(pl.Int64))print(out)
shape: (5, 2)
┌───────┬──────────────────┐
│ date  ┆ datetime         │
│ ------              │
│ i64   ┆ i64              │
╞═══════╪══════════════════╡
│ 189931640995200000000 │
│ 189941641081600000000 │
│ 189951641168000000000 │
│ 189961641254400000000 │
│ 189971641340800000000 │
└───────┴──────────────────┘df = pl.DataFrame({"date": pl.date_range(date(2022, 1, 1), date(2022, 1, 5), eager=True),"string": ["2022-01-01","2022-01-02","2022-01-03","2022-01-04","2022-01-05",],}
)print(df)
shape: (5, 2)
┌────────────┬────────────┐
│ date       ┆ string     │
│ ------        │
│ date       ┆ str        │
╞════════════╪════════════╡
│ 2022-01-012022-01-01 │
│ 2022-01-022022-01-02 │
│ 2022-01-032022-01-03 │
│ 2022-01-042022-01-04 │
│ 2022-01-052022-01-05 │
└────────────┴────────────┘out=df.select(pl.col("date").dt.to_string("%Y-%m-%d"),pl.col("string").str.to_datetime("%Y-%m-%d"),pl.col("string").str.to_date("%Y-%m-%d").alias("string_to_data")
)print(out)
shape: (5, 3)
┌────────────┬─────────────────────┬────────────────┐
│ date       ┆ string              ┆ string_to_data │
│ ---------            │
│ str        ┆ datetime[μs]        ┆ date           │
╞════════════╪═════════════════════╪════════════════╡
│ 2022-01-012022-01-01 00:00:002022-01-01     │
│ 2022-01-022022-01-02 00:00:002022-01-02     │
│ 2022-01-032022-01-03 00:00:002022-01-03     │
│ 2022-01-042022-01-04 00:00:002022-01-04     │
│ 2022-01-052022-01-05 00:00:002022-01-05     │
└────────────┴─────────────────────┴────────────────┘

历史相关文章

  • Python polars学习-01 读取与写入文件
  • Python polars学习-02 上下文与表达式
  • Python pandas 里面的数据类型坑,astype要慎用
  • Python pandas.str.replace 不起作用

以上是自己实践中遇到的一些问题,分享出来供大家参考学习,欢迎关注微信公众号:DataShare ,不定期分享干货

http://www.shuangfujiaoyu.com/news/31100.html

相关文章:

  • 舞蹈网页设计素材百度seo流量
  • 网络品牌推广多少钱下载班级优化大师app
  • 汕头企业网站怎么建立一个自己的网站
  • 主机做网站网站seo百度百科
  • wordpress与thinkphpseo群发软件
  • ps网页制作视频教程国内做seo最好的公司
  • 汕尾网站建设小红书信息流广告
  • wordpress 文章 时间段seo研究中心vip教程
  • 自己做网站开发如何找客户seo推广是做什么
  • 上海工商网站查询企业信息怎么找推广渠道
  • 带分期功能的网站建设cnzz数据统计
  • 服务器托管成都创新互联百度搜索引擎优化的方法
  • 8080端口做网站陕西seo优化
  • 珠海网站设计培训班竞价推广开户
  • 百度推广做网站吗永久不收费的软件app
  • wordpress政府主题下载咸阳seo
  • 网站做多个产品免费建站哪个比较好
  • 晋城做网站免费的网站平台
  • 公司要想做个网站这么弄什么是整合营销并举例说明
  • 网站监测怎么做站长工具seo综合查询工具
  • 深圳 三人 网站建设app拉新推广怎么做
  • 用云速成美站怎么做网站广东seo推广哪里好
  • 可以免费做演播的听书网站seo推广岗位职责
  • 可以做免费广告的网站有哪些seo排名的公司
  • 做网站网页最近一周热点新闻
  • 门店推广是什么意思重庆seo教程搜索引擎优化
  • 优化网站标题小程序制作费用一览表
  • 网站做seo多少钱营销平台是什么意思
  • 做外贸怎样打开国外网站南京关键词网站排名
  • 合肥网站建设步骤自己怎么做网址开网站