首页 > 其他分享 >pandas

pandas

时间:2024-10-19 20:59:03浏览次数:3  
标签:float64 df dtype object str pandas cola

DataFrame类的dtype介绍如下:
object: 定义该列值可以存放任意类型的内容,比如float64, str, int32等等。从excel读入时,空值将以float64形式存储为np.NaN。
float64: 即浮点形,为numpy的浮点形,而不是python内置类型的float,在numpy中运行时相较于float有性能优势,空值存储为np.NaN
pd.StringDtype(): pandas的内置字符串类型,空值为pd.NA。显示定义这个类型的列后,列中所有值都将是str,而不像object,会将某个值推断为非str类型。

列定义为dtype=object时,该列中每行的值的实际存储类型可以有多处。 但列定义为float64或int32时,所有值必须都是符合该定义类型的数值,或np.NaN(一般从excel读入空值时便是np.NaN)。
列定义为dtype=np.float64时,必须确保每个值要么是空,要么是能转为数值的字符串。整个列类型为numpy.float64
列定义为dtype=str时,所有值都会实际以str存储,但整个列的类型仍然为object,既后续可能追加非str类型的值。
列定义为dtype=pd.StringDtype()是,所有值都会实际以str存储,但整个列的类型为string[python],既后续追加的新值必须也是str。

当使用类似df_object['cola'].str.contains('abc', na=False)) 这样的函数时,一定要确保该列都为str的值,否则,遇到推断为非str值时,就会报错。所以建议如果要在某列上使用这种函数,应该显示指定dtype=str或pd.StringDtype()。

举列

import pandas as pd
import numpy as np

df_object = pd.DataFrame({"cola": [33,34.1,35,36]}, dtype=object)  # 列类型为object
type(df_object['cola'][0])  # 输出结果为 int
df_object['cola'][0] # 输出结果为 33
type(df_object['cola'][1])  # 输出结果为 float (注意,这里该值类型为float, 而不是numpy.float64)
df_object['cola'][1] # 输出结果为 34.1

df_float = pd.DataFrame({"cola": [33,34.1,35,36]}, dtype=np.float64)  # 列类型为float64
type(df_float ['cola'][1])  # 输出结果为 numpy.float64
df_float['cola'][1] # 输出结果为 34.1

df_str = pd.DataFrame({"cola": [33,34,35,36]}, dtype=str)  # 列类型仍然为object
type(df_str['cola'][1])  # 输出结果为 str
df_str['cola'][1] # 输出结果为 '34.1'

df_pdstr = pd.DataFrame({"cola": [33,34,35,36]}, dtype=pd.StringDtype())  # 列类型为string[python]
type(df_pdstr['cola'][1])  # 输出结果为 str
df_pdstr['cola'][1] # 输出结果为 '34.1'

标签:float64,df,dtype,object,str,pandas,cola
From: https://www.cnblogs.com/rolandhe/p/18486566

相关文章

  • Python酷库之旅-第三方库Pandas(158)
    目录一、用法精讲721、pandas.Timedelta.round方法721-1、语法721-2、参数721-3、功能721-4、返回值721-5、说明721-6、用法721-6-1、数据准备721-6-2、代码示例721-6-3、结果输出722、pandas.Timedelta.to_pytimedelta方法722-1、语法722-2、参数722-3、功能7......
  • 盘点6个Pandas中批量替换字符的方法
    大家好,我是Python进阶者。一、前言前几天在Python最强王者群有个叫【dcpeng】的粉丝问了一个关于Pandas中的问题,这里拿出来给大家分享下,一起学习。想问一下我有一列编码为1,2,3,4的数据,如何将1批量换为“开心”,2批量换为“悲伤”这种字符替换呢?二、解决过程思路挺简单,限定Pandas......
  • 常用Python数据分析开源库:Numpy、Pandas、Matplotlib、Seaborn、Sklearn介绍
    文章目录1.常用Python数据分析开源库介绍1.1Numpy1.2Pandas1.3Matplotlib1.4Seaborn1.5Sklearn1.常用Python数据分析开源库介绍1.1NumpyNumpy(NumericalPython)是Python数据分析必不可少的第三方库,Numpy的出现一定程度上解决了Python运算性能不佳的问题,同......
  • pandas随笔(七)-- 统计文本中单词出现的次数(词频统计)
    题目描述编写解决方案,找出单词'bull'和'bear'作为独立词有出现的文件数量,不考虑任何它出现在两侧没有空格的情况(例如,'bullet','bears','bull.',或者'bear'在句首或句尾不会被考虑)。返回单词'bull'和'bear'以及它们对应的出现文件数量,顺序没有限制。测试用例输......
  • python pandas写入excel
    #--coding:utf-8--importdatetimeimportpandasaspdfromcommon_toolimportget_ip_areafromdb.mysqlConnectionimportMyPymysqlPoolfromdb_configimportdata_report_dbsex_dict={"-1":"未知","0":"女&......
  • 【python-数据分析】pandas时间序列处理
    1.timestamp1.1创建timestamp自定义timestamp语法:pd.Timestamp(ts_input,tz,year,month,day,hour,minute,second,microsecond,nanosecond,tzinfo)代码示例:importpandasaspdimportpytz#当ts_input为字符串时,一般要与tz参数搭配使用timestamp=pd.Timestamp(ts......
  • 【python-数据分析】pandas数据提取
    importpandasaspd1.直接索引df=pd.DataFrame({'AdmissionDate':['2021-01-25','2021-01-22','2021-01-20','2021-01-18','2021-01-17','2021-01-17','2021-01-2......
  • pandas数据统一绘图风格配置
    在使用pandas的时候,经常会用到Dataframe或者Series的plot方法,该方法底层实际上调的还是matplotlib.pyplot的plot方法。因此,通过对pyplot模块的绘图全局参数设置是可以在pandas中奏效的。importpandasaspdimportmatplotlib.pyplotaspltimportwarningswarnings.filterwa......
  • Python数据分析NumPy和pandas(五、NumPy高维数组的数学计算 2)
    一、Numpy的花式索引FancyIndexing花式索引FancyIndexing是NumPy采用的一个术语,用于描述使用整数数组进行索引。1.举例:用元组来创建一个8x4的二维数组zeros,并循环赋值:importnumpyasnparr=np.zeros((8,4))#为二维数组arr每行赋值foriinrange(8):arr[i......
  • 简单理解pandas的groupby函数
    pandas中的groupby函数,可以对数据进行分组,然后对分组后的数据进行聚合操作,比如求和、平均值、最大值、最小值等。平时使用groupby处理后,通常使用aggregate函数进行聚合操作。其实,groupby分组之后的聚合操作方法还很多,具体可以参考官方文档。1.读取数据dataframe=pd.DataFrame({......