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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CMSIS的简介_CMSInitiatingOccupancyFraction

    CMSIS的简介_CMSInitiatingOccupancyFractionCortex微控制器软件接口标准(CortexMicrocontrollerSoftwareInterfaceStandard)是ARM和一些编译器厂家以及半导体厂家共同遵循的一套标准,是由A

    2022年8月6日
    14
  • java1.8垃圾回收机制_JAVA垃圾回收机制

    java1.8垃圾回收机制_JAVA垃圾回收机制目录:什么是垃圾怎么判定垃圾什么时候回收垃圾怎么回收垃圾回收器介绍1.什么是垃圾在JVM中,程序计数器、虚拟机栈、本地方法栈都是随线程生而生,随线程灭而灭(不需要管理);栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理(不需要管理);常说的垃圾回收主要集中在堆和方法区,这部分内存是随着程序运行动态分配的(回收对象,常量,类)。2.怎么判定垃圾2.1对象:产生位置:堆Java的自动内…

    2022年10月13日
    3
  • 此工作站和主域间的信任关系失败 又一解决办法_电脑加域后无管理员

    此工作站和主域间的信任关系失败 又一解决办法_电脑加域后无管理员某虚拟化的域控制器出现严重故障以至于不可修复,故使用之前Hyper-V中导出的备份恢复了域控制器。恢复后基本功能正常,但部分工作站登录时提示“此工作站和主域间的信任关系失败”。【解决方案】0、必须确保故障工作站没有其他的问题(如网络连接故障、DNS设置错误等);1、在不能登录域的工作站上,使用工作站本地的管理员用户登录系统;2、在工作站上打开powershell,输入Reset…

    2022年10月19日
    2
  • Pycharm提示 Unresolved reference 的解决办法[通俗易懂]

    Pycharm提示 Unresolved reference 的解决办法[通俗易懂]有时候a.py和b.py在一个目录里面,但是在a.py种写importb有时会提示Unresolvedreference,Pycharm常见,解决办法是setting->Project->Projectstructure->Source,点击要加入的文件夹.注意:添加成功之后该文件见的图标会编程蓝色(加入之前是淡蓝色中间一个圆圈)如上图所示。…

    2022年8月27日
    3
  • em算法在高斯混合模型中的应用_高斯分布概率计算公式

    em算法在高斯混合模型中的应用_高斯分布概率计算公式一个例子高斯混合模型(GaussianMixedModel)指的是多个高斯分布函数的线性组合,理论上GMM可以拟合出任意类型的分布,通常用于解决同一集合下的数据包含多个不同的分布的情况(或者是同一类分布但参数不一样,或者是不同类型的分布,比如正态分布和伯努利分布)。如图1,图中的点在我们看来明显分成两个聚类。这两个聚类中的点分别通过两个不同的正态分布随机生成而来。但是如果没有GMM,那么只能用一

    2022年10月21日
    3
  • yum 命令讲解「建议收藏」

    yum 命令讲解「建议收藏」(一)yum介绍Yum(全称为YellowdogUpdater,Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。 …

    2022年5月5日
    47

发表回复

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

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