python dtype o_python – 什么是dtype(’O’)? – 堆栈内存溢出「建议收藏」

python dtype o_python – 什么是dtype(’O’)? – 堆栈内存溢出「建议收藏」当你在数据帧中看到dtype(‘O’),这意味着Pandas字符串。什么是dtype?什么属于pandas或numpy,或两者,或其他什么?如果我们检查一下pandas代码:df=pd.DataFrame({‘float’:[1.0],’int’:[1],’datetime’:[pd.Timestamp(‘20180310′)],’string’:[‘foo’]})print…

大家好,又见面了,我是你们的朋友全栈君。

当你在数据帧中看到dtype(‘O’) ,这意味着Pandas字符串。

什么是dtype ?

什么属于pandas或numpy ,或两者,或其他什么? 如果我们检查一下pandas代码:

df = pd.DataFrame({‘float’: [1.0],

‘int’: [1],

‘datetime’: [pd.Timestamp(‘20180310’)],

‘string’: [‘foo’]})

print(df)

print(df[‘float’].dtype,df[‘int’].dtype,df[‘datetime’].dtype,df[‘string’].dtype)

df[‘string’].dtype

它将输出如下:

float int datetime string

0 1.0 1 2018-03-10 foo

float64 int64 datetime64[ns] object

dtype(‘O’)

您可以将最后解释为Pandas dtype(‘O’)或Pandas对象,它是Python类型字符串,这对应于Numpy string_或unicode_ types。

Pandas dtype Python type NumPy type Usage

object str string_, unicode_ Text

就像堂吉诃德一样,Pandas在Numpy上,Numpy了解你的系统的底层架构,并使用类numpy.dtype 。

数据类型对象是numpy.dtype类的一个实例, numpy.dtype 更加精确地理解数据类型,包括:

数据类型(整数,浮点数,Python对象等)

数据的大小(例如整数中的字节数)

数据的字节顺序(little-endian或big-endian)

如果数据类型是结构化的,则是其他数据类型的聚合(例如,描述由整数和浮点数组成的数组项)

结构“字段”的名称是什么

每个字段的数据类型是什么

每个字段占用的内存块的哪一部分

如果数据类型是子数组,那么它的形状和数据类型是什么

在这个问题的上下文中, dtype属于pands和numpy,特别是dtype(‘O’)意味着我们期望字符串。

下面是一些用于测试和解释的代码:如果我们将数据集作为字典

import pandas as pd

import numpy as np

from pandas import Timestamp

data={‘id’: {0: 1, 1: 2, 2: 3, 3: 4, 4: 5}, ‘date’: {0: Timestamp(‘2018-12-12 00:00:00’), 1: Timestamp(‘2018-12-12 00:00:00’), 2: Timestamp(‘2018-12-12 00:00:00’), 3: Timestamp(‘2018-12-12 00:00:00’), 4: Timestamp(‘2018-12-12 00:00:00’)}, ‘role’: {0: ‘Support’, 1: ‘Marketing’, 2: ‘Business Development’, 3: ‘Sales’, 4: ‘Engineering’}, ‘num’: {0: 123, 1: 234, 2: 345, 3: 456, 4: 567}, ‘fnum’: {0: 3.14, 1: 2.14, 2: -0.14, 3: 41.3, 4: 3.14}}

df = pd.DataFrame.from_dict(data) #now we have a dataframe

print(df)

print(df.dtypes)

最后一行将检查数据帧并记下输出:

id date role num fnum

0 1 2018-12-12 Support 123 3.14

1 2 2018-12-12 Marketing 234 2.14

2 3 2018-12-12 Business Development 345 -0.14

3 4 2018-12-12 Sales 456 41.30

4 5 2018-12-12 Engineering 567 3.14

id int64

date datetime64[ns]

role object

num int64

fnum float64

dtype: object

各种不同的dtypes

df.iloc[1,:] = np.nan

df.iloc[2,:] = None

但是如果我们尝试设置np.nan或None这不会影响原始列dtype。 输出将如下所示:

print(df)

print(df.dtypes)

id date role num fnum

0 1.0 2018-12-12 Support 123.0 3.14

1 NaN NaT NaN NaN NaN

2 NaN NaT None NaN NaN

3 4.0 2018-12-12 Sales 456.0 41.30

4 5.0 2018-12-12 Engineering 567.0 3.14

id float64

date datetime64[ns]

role object

num float64

fnum float64

dtype: object

所以np.nan或None不会更改列dtype ,除非我们设置的所有列行np.nan或None 。 在这种情况下,列将分别成为float64或object 。

您也可以尝试设置单行:

df.iloc[3,:] = 0 # will convert datetime to object only

df.iloc[4,:] = ” # will convert all columns to object

在这里要注意,如果我们在非字符串列中设置字符串,它将变为字符串或对象dtype 。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145171.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux修改密码长度限制_linux文件名长度限制修改

    linux修改密码长度限制_linux文件名长度限制修改修改密码长度:设置为不少于8位的。修改最短密码长度需要编辑login.defs文件(vi/etc/login.defs),把下面这行PASS_MIN_LEN5(默认的情况)改为PASS_MIN_LEN8(修改后的情况)login.defs文件是login程序的配置文件 转载于:https://blog.51ct…

    2025年9月19日
    5
  • 基于Vue3.0的电商后台管理系统—前端

    基于Vue3.0的电商后台管理系统—前端历时一个月,从开始学习vue到能用vue开发一个简单的系统,以下是开发这个系统的简单报告。所用的技术:git:管理代码的开发node.js:vue.js运行环境vue3.0:最新版本vue-cli3.0:脚手架最新版本,支持图形化操作webstorm:代码编辑器项目新增插件:vue-cli-plugin-element:elementUI库项目新增的依赖:…

    2022年6月8日
    45
  • sublime phpcs

    sublime phpcs

    2022年3月2日
    46
  • python利用海伦公式求三角形的面积

    python利用海伦公式求三角形的面积前言从小学我们都知道,三角形的面积是底乘以高除以2。那么已知任意一个三角形的三条边,如何能够求出三角形的面积呢?这里我们用到了海伦公式。海伦公式又译作希伦公式、海龙公式、希罗公式等,它是利用三角形的三条边的边长直接求三角形面积的公式,表达式为:其中p是三条边的和的一半儿。python根据三角形三条边求面积1.三角形的三条边的符合条件我们知道,三角形有三条边,且三条边…

    2025年8月24日
    3
  • Spring中的注解 @RequestBody和@ResponseBody的使用和区别

    Spring中的注解 @RequestBody和@ResponseBody的使用和区别一、@RequestBody@RequestBody的作用是将前端传来的json格式的数据转为自己定义好的javabean对象如图以微信小程序为例,前端向后端传入如下json格式的数据需要注意的是传入数据的属性名称要和后端javabean中定义的一致发送请求后可以看到在控制台中我们通过javabean对象的get方法打印出了前端传来的值,说明json数据已经成功的被转换为了javab…

    2022年5月28日
    109
  • 智能家居、智慧社区与智慧城市的关系_智能家居有哪些

    智能家居、智慧社区与智慧城市的关系_智能家居有哪些物联网技术可让智能家居应用变得更方便。过去几年年可说是智能家居生态链成形的关键年,许多科技大厂如Google并购Nest/Dropcam、三星并购SmartThings等,或是合作建立物联网联盟,如Qualcomm建立Allseen、Intel及三星主导OIC等,积极建立智能家居管理平台,提供有意进军智能家居的业者API,整合第三方软硬件资源,…

    2022年10月17日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号