pandas 数组、标量和数据类型# 对象# Index对于大多数数据类型,pandas 使用 NumPy 数组作为、Series或 包含的具体对象DataFrame。 对于某些数据类型,pandas 扩展了 NumPy 的类型系统。这些类型的字符串别名可以在dtypes中找到。 数据类型 熊猫数据类型 标量 大批 TZ 感知日期时间 DatetimeTZDtype Timestamp 日期时间 时间增量 (没有任何) Timedelta 时间增量 期间(时间跨度) PeriodDtype Period 经期 间隔 IntervalDtype Interval 间隔 可空整数 Int64Dtype, … (没有任何) 可空整数 可空浮点数 Float64Dtype, … (没有任何) 可空浮点数 分类的 CategoricalDtype (没有任何) 分类 疏 SparseDtype (没有任何) 疏 弦乐 StringDtype str 弦乐 可空布尔值 BooleanDtype bool 可空布尔值 pyarrow ArrowDtype Python 标量或NA pyarrow pandas 和第三方库可以扩展 NumPy 的类型系统(请参阅扩展类型)。顶级array()方法可用于创建一个新数组,该数组可以存储在Series、Index或作为 中的列DataFrame。 array(数据[,数据类型,副本]) 创建一个数组。 PyArrow # 警告 此功能是实验性的,API 可能会在未来版本中更改,恕不另行通知。 arrays.ArrowExtensionArray由 a 支持,pyarrow.ChunkedArray而 pyarrow.DataType不是 NumPy 数组和数据类型。.dtypea 的是arrays.ArrowExtensionArray 一个ArrowDtype。 Pyarrow提供与 NumPy 类似的数组和数据类型 支持,包括对所有数据类型的一流可空性支持、不变性等。 下表显示了pandas 识别的等效 pyarrow-backed ( pa)、pandas 扩展和 numpy ( ) 类型。np下面需要传递 Pyarrow 支持的类型ArrowDtype才能被 pandas 识别,例如pd.ArrowDtype(pa.bool_()) PyArrow 类型 pandas 扩展类型 NumPy 类型 pyarrow.bool_() BooleanDtype np.bool_ pyarrow.int8() Int8Dtype np.int8 pyarrow.int16() Int16Dtype np.int16 pyarrow.int32() Int32Dtype np.int32 pyarrow.int64() Int64Dtype np.int64 pyarrow.uint8() UInt8Dtype np.uint8 pyarrow.uint16() UInt16Dtype np.uint16 pyarrow.uint32() UInt32Dtype np.uint32 pyarrow.uint64() UInt64Dtype np.uint64 pyarrow.float32() Float32Dtype np.float32 pyarrow.float64() Float64Dtype np.float64 pyarrow.time32() (没有任何) (没有任何) pyarrow.time64() (没有任何) (没有任何) pyarrow.timestamp() DatetimeTZDtype np.datetime64 pyarrow.date32() (没有任何) (没有任何) pyarrow.date64() (没有任何) (没有任何) pyarrow.duration() (没有任何) np.timedelta64 pyarrow.binary() (没有任何) (没有任何) pyarrow.string() StringDtype np.str_ pyarrow.decimal128() (没有任何) (没有任何) pyarrow.list_() (没有任何) (没有任何) pyarrow.map_() (没有任何) (没有任何) pyarrow.dictionary() CategoricalDtype (没有任何) 笔记 pd.StringDtype("pyarrow")Pyarrow 支持的字符串支持由和提供pd.ArrowDtype(pa.string())。 下面在字符串部分pd.StringDtype("pyarrow")中进行了描述,如果指定了 字符串别名,则将返回该值。 通常与不同类型具有更好的互操作性。"string[pyarrow]"pd.ArrowDtype(pa.string())ArrowDtype 虽然 an 中的各个值arrays.ArrowExtensionArray存储为 PyArrow 对象,但标量将作为与数据类型相对应的 Python 标量返回 ,例如 PyArrow int64 将作为 Python int 返回,或者NA对于缺失值。 arrays.ArrowExtensionArray(数值) 由 PyArrow ChunkedArray 支持的 Pandas ExtensionArray。 ArrowDtype(pyarrow_dtype) PyArrow 数据类型的 ExtensionDtype。 有关更多信息,请参阅PyArrow 用户指南 日期时间# NumPy 本身无法表示时区感知的日期时间。 pandas 通过扩展数组支持这一点arrays.DatetimeArray,它可以保存时区原始值或时区感知值。 Timestamp是 的子类datetime.datetime,是 pandas 的标量类型,用于时区朴素或时区感知的日期时间数据。NaT 是日期时间数据的缺失值。 Timestamp([ts_input,年,月,日,...]) Pandas 替换 python datetime.datetime 对象。 特性# Timestamp.asm8 返回 numpy datetime64 格式(以纳秒为单位)。 Timestamp.day Timestamp.dayofweek 返回星期几。 Timestamp.day_of_week 返回星期几。 Timestamp.dayofyear 返回一年中的第几天。 Timestamp.day_of_year 返回一年中的第几天。 Timestamp.days_in_month 返回该月的天数。 Timestamp.daysinmonth 返回该月的天数。 Timestamp.fold Timestamp.hour Timestamp.is_leap_year 如果年份是闰年,则返回 True。 Timestamp.is_month_end 检查日期是否是该月的最后一天。 Timestamp.is_month_start 检查日期是否是该月的第一天。 Timestamp.is_quarter_end 检查日期是否是该季度的最后一天。 Timestamp.is_quarter_start 检查日期是否为季度的第一天。 Timestamp.is_year_end 如果日期是一年中的最后一天,则返回 True。 Timestamp.is_year_start 如果日期是一年中的第一天,则返回 True。 Timestamp.max Timestamp.microsecond Timestamp.min Timestamp.minute Timestamp.month Timestamp.nanosecond Timestamp.quarter 返回一年中的季度。 Timestamp.resolution Timestamp.second Timestamp.tz tzinfo 的别名。 Timestamp.tzinfo Timestamp.unit 与 self._creso 相关的缩写。 Timestamp.value Timestamp.week 返回一年中的周数。 Timestamp.weekofyear 返回一年中的周数。 Timestamp.year 方法# Timestamp.as_unit(单位[, round_ok]) 将底层 int64 表示形式转换为给定单位。 Timestamp.astimezone(兹) 将时区感知时间戳转换为另一个时区。 Timestamp.ceil(freq[, 不明确, 不存在]) 返回此分辨率上限的新时间戳。 Timestamp.combine(约会时间) 将日期、时间合并为具有相同日期和时间字段的日期时间。 Timestamp.ctime() 返回 ctime() 样式字符串。 Timestamp.date() 返回具有相同年、月、日的日期对象。 Timestamp.day_name([语言环境]) 返回具有指定区域设置的时间戳的日期名称。 Timestamp.dst() 返回夏令时 (DST) 调整。 Timestamp.floor(freq[, 不明确, 不存在]) 返回一个基于此分辨率的新时间戳。 Timestamp.fromordinal(序数[,tz]) 从一个预推的格里高利序数构造一个时间戳。 Timestamp.fromtimestamp(TS) 将 timestamp[, tz] 从 POSIX 时间戳转换为 tz 的本地时间。 Timestamp.isocalendar() 返回包含 ISO 年份、周数和工作日的命名元组。 Timestamp.isoformat([九月,时间规范]) 返回根据 ISO 8601 格式化的时间。 Timestamp.isoweekday() 返回日期所代表的星期几。 Timestamp.month_name([语言环境]) 返回具有指定区域设置的时间戳的月份名称。 Timestamp.normalize() 将时间戳标准化为午夜,保留 tz 信息。 Timestamp.now([兹]) 返回表示 tz 本地当前时间的新 Timestamp 对象。 Timestamp.replace([年、月、日、小时...]) 实现 datetime.replace,处理纳秒。 Timestamp.round(freq[, 不明确, 不存在]) 将时间戳舍入到指定的分辨率。 Timestamp.strftime(格式) 返回时间戳的格式化字符串。 Timestamp.strptime(字符串、格式) 功能未实现。 Timestamp.time() 返回具有相同时间但 tzinfo=None 的时间对象。 Timestamp.timestamp() 以浮点数形式返回 POSIX 时间戳。 Timestamp.timetuple() 返回时间元组,与time.localtime()兼容。 Timestamp.timetz() 返回具有相同时间和tzinfo的时间对象。 Timestamp.to_datetime64() 返回具有相同精度的 numpy.datetime64 对象。 Timestamp.to_numpy([数据类型,复制]) 将时间戳转换为 NumPy datetime64。 Timestamp.to_julian_date() 将时间戳转换为儒略日期。 Timestamp.to_period([频率]) 返回此时间戳是一个观察值的时间段。 Timestamp.to_pydatetime([警告]) 将 Timestamp 对象转换为本机 Python 日期时间对象。 Timestamp.today([兹]) 返回本地时区的当前时间。 Timestamp.toordinal() 返回未推算的格里高利序数。 Timestamp.tz_convert(兹) 将时区感知时间戳转换为另一个时区。 Timestamp.tz_localize(tz[, 不明确, ...]) 将时间戳本地化为时区。 Timestamp.tzname() 返回时区名称。 Timestamp.utcfromtimestamp(TS) 从 POSIX 时间戳构造一个时区感知的 UTC 日期时间。 Timestamp.utcnow() 返回代表 UTC 日期和时间的新时间戳。 Timestamp.utcoffset() 返回 utc 偏移量。 Timestamp.utctimetuple() 返回UTC时间元组,与time.localtime()兼容。 Timestamp.weekday() 返回日期所代表的星期几。 时间戳的集合可以存储在arrays.DatetimeArray.对于时区感知数据,.dtypeaarrays.DatetimeArray是 a DatetimeTZDtype。对于时区原始数据,np.dtype("datetime64[ns]") 使用。 如果数据是时区感知的,则数组中的每个值都必须具有相同的时区。 arrays.DatetimeArray(值[,数据类型,频率,复制]) Pandas ExtensionArray 用于 tz-naive 或 tz-aware 日期时间数据。 DatetimeTZDtype([单位,tz]) 用于时区感知日期时间数据的 ExtensionDtype。 时间增量# NumPy 本身可以表示时间增量。 pandas 提供Timedelta 了对称性Timestamp。NaT 是 timedelta 数据的缺失值。 Timedelta([值,单位]) 表示持续时间,即两个日期或时间之间的差异。 特性# Timedelta.asm8 返回 numpy timedelta64 数组标量视图。 Timedelta.components 返回一个类似于元组的组件。 Timedelta.days 返回 timedelta 的天数。 Timedelta.max Timedelta.microseconds Timedelta.min Timedelta.nanoseconds 返回纳秒数 (n),其中 0 <= n < 1 微秒。 Timedelta.resolution Timedelta.seconds 返回 timedelta 的总小时数、分钟数和秒数(以秒为单位)。 Timedelta.unit Timedelta.value Timedelta.view(数据类型) 数组视图兼容性。 方法# Timedelta.as_unit(单位[, round_ok]) 将底层 int64 表示形式转换为给定单位。 Timedelta.ceil(频率) 返回此分辨率上限的新 Timedelta。 Timedelta.floor(频率) 返回一个以此分辨率为底的新 Timedelta。 Timedelta.isoformat() 将 Timedelta 格式化为 ISO 8601 持续时间。 Timedelta.round(频率) 将 Timedelta 舍入到指定的分辨率。 Timedelta.to_pytimedelta() 将 pandas Timedelta 对象转换为 pythondatetime.timedelta对象。 Timedelta.to_timedelta64() 返回精度为 'ns' 的 numpy.timedelta64 对象。 Timedelta.to_numpy([数据类型,复制]) 将 Timedelta 转换为 NumPy timedelta64。 Timedelta.total_seconds() 持续时间的总秒数。 的集合Timedelta可以存储在TimedeltaArray. arrays.TimedeltaArray(值[,数据类型,频率,...]) 用于时间增量数据的 Pandas ExtensionArray。 期间# pandas 将时间跨度表示为Period对象。 时期# Period([值、频率、序数、年、月...]) 代表一段时间。 特性# Period.day 获取一个期间所在月份的日期。 Period.dayofweek 该期间所在的星期几,星期一=0,星期日=6。 Period.day_of_week 该期间所在的星期几,星期一=0,星期日=6。 Period.dayofyear 返回一年中的第几天。 Period.day_of_year 返回一年中的第几天。 Period.days_in_month 获取该期间所在月份的总天数。 Period.daysinmonth 获取该期间所在月份的总天数。 Period.end_time 获取该期间结束的时间戳。 Period.freq Period.freqstr 返回频率的字符串表示形式。 Period.hour 获取期间的一天中的小时部分。 Period.is_leap_year 如果该期间的年份是闰年,则返回 True。 Period.minute 获取期间的小时部分的分钟。 Period.month 返回此期间所在的月份。 Period.ordinal Period.quarter 返回该期间所属的季度。 Period.qyear 该期间所在的会计年度根据其起始季度而定。 Period.second 获取周期的第二个组成部分。 Period.start_time 获取该期间开始的时间戳。 Period.week 获取给定期间的一年中的第几周。 Period.weekday 该期间所在的星期几,星期一=0,星期日=6。 Period.weekofyear 获取给定期间的一年中的第几周。 Period.year 返回此期间所在的年份。 方法# Period.asfreq(频率[,如何]) 在间隔的开始或结束处将周期转换为所需的频率。 Period.now(频率) 返回当前日期的时间段。 Period.strftime(FMMT) 返回 的格式化字符串表示形式Period。 Period.to_timestamp([频率,方式]) 返回周期的时间戳表示形式。 的集合Period可以存储在arrays.PeriodArray. a中的每个时期都arrays.PeriodArray必须有相同的freq。 arrays.PeriodArray(值[,数据类型,频率,复制]) Pandas ExtensionArray 用于存储周期数据。 PeriodDtype(频率) 周期数据的 ExtensionDtype。 间隔# 任意间隔可以表示为Interval对象。 Interval 实现 Interval 的不可变对象,一个有界的切片状间隔。 特性# Interval.closed 描述间隔包含端的字符串。 Interval.closed_left 检查左侧区间是否闭合。 Interval.closed_right 检查区间右侧是否闭合。 Interval.is_empty 指示区间是否为空,即不包含点。 Interval.left 区间的左边界。 Interval.length 返回间隔的长度。 Interval.mid 返回间隔的中点。 Interval.open_left 检查左侧间隔是否打开。 Interval.open_right 检查右侧间隔是否打开。 Interval.overlaps(其他) 检查两个 Interval 对象是否重叠。 Interval.right 区间的右界。 间隔的集合可以存储在arrays.IntervalArray. arrays.IntervalArray(数据[,关闭,数据类型,...]) Pandas 数组用于在同一侧闭合的区间数据。 IntervalDtype([子类型,关闭]) 间隔数据的 ExtensionDtype。 可为空整数# numpy.ndarray无法本机表示缺失值的整数数据。 pandas 通过arrays.IntegerArray. arrays.IntegerArray(值,掩码[,复制]) 整数(可选缺失)值数组。 Int8Dtype() int8 整数数据的 ExtensionDtype。 Int16Dtype() int16 整数数据的 ExtensionDtype。 Int32Dtype() int32 整数数据的 ExtensionDtype。 Int64Dtype() int64 整数数据的 ExtensionDtype。 UInt8Dtype() uint8 整数数据的 ExtensionDtype。 UInt16Dtype() uint16 整数数据的 ExtensionDtype。 UInt32Dtype() uint32 整数数据的 ExtensionDtype。 UInt64Dtype() uint64 整数数据的 ExtensionDtype。 可空浮点数# arrays.FloatingArray(值,掩码[,复制]) 浮动(可选缺失)值数组。 Float32Dtype() float32 数据的 ExtensionDtype。 Float64Dtype() float64 数据的 ExtensionDtype。 分类# pandas 定义了一种自定义数据类型,用于表示只能采用有限的、固定的值集的数据。 a 的 dtypeCategorical可以用 a 来描述CategoricalDtype。 CategoricalDtype([类别,已排序]) 输入具有类别和顺序的分类数据。 CategoricalDtype.categories 包含Index允许的唯一类别。 CategoricalDtype.ordered 类别是否具有有序关系。 分类数据可以存储在pandas.Categorical Categorical(值[、类别、有序、...]) 以经典 R/S-plus 方式表示分类变量。 Categorical.from_codes()当您已经拥有类别和整数代码时,可以使用替代构造函数: Categorical.from_codes(代码[、类别、...]) 从代码和类别或 dtype 中创建分类类型。 dtype 信息可在Categorical Categorical.dtype 对于CategoricalDtype这个例子。 Categorical.categories 此分类的类别。 Categorical.ordered 类别是否具有有序关系。 Categorical.codes 该分类索引的类别代码。 np.asarray(categorical)通过实现数组接口来工作。请注意,这会将其转换Categorical回 NumPy 数组,因此不会保留类别和顺序信息! Categorical.__array__([数据类型,复制]) numpy 数组接口。 ACategorical可以存储在 aSeries或中DataFrame。要创建一系列 dtype category,请使用或 其中是cat = s.astype(dtype)Series(..., dtype=dtype)dtype 字符串'category' 的一个实例CategoricalDtype。 如果Series是 dtype CategoricalDtype,Series.cat则可用于更改分类数据。有关更多信息,请参阅分类访问器。 稀疏# 单个值重复多次(例如0或NaN)的数据可以有效地存储为arrays.SparseArray. arrays.SparseArray(数据[,稀疏索引,...]) 用于存储稀疏数据的 ExtensionArray。 SparseDtype([数据类型,填充值]) 存储在SparseArray. 如果包含稀疏值,则访问Series.sparse器可用于访问稀疏特定的属性和方法Series。有关更多信息,请参阅 稀疏访问器和用户指南。 字符串# 处理文本数据时,每个有效元素都是字符串或缺失,我们建议使用StringDtype(与别名"string")。 arrays.StringArray(值[,复制]) 字符串数据的扩展数组。 arrays.ArrowStringArray(数值) pyarrow.ChunkedArray.a中字符串数据的扩展数组 StringDtype([贮存]) 字符串数据的扩展数据类型。 该访问器Series.str可由Series.有关更多信息,arrays.StringArray请参阅字符串处理。 可空布尔值# boolean 数据类型(带有别名"boolean")支持存储带有缺失值的布尔数据(True, False),而 bool 则无法做到这一点numpy.ndarray。 arrays.BooleanArray(值,掩码[,复制]) 具有缺失值的布尔(True/False)数据数组。 BooleanDtype() 布尔数据的扩展数据类型。 实用程序# 构造函数# api.types.union_categoricals(to_union[, ...]) 将类列表的类联合类别组合起来。 api.types.infer_dtype(值[,跳过]) 返回标量或类似列表的值类型的字符串标签。 api.types.pandas_dtype(数据类型) 将输入转换为 pandas only dtype 对象或 numpy dtype 对象。 数据类型自省# api.types.is_any_real_numeric_dtype(arr_or_dtype) 检查提供的数组或数据类型是否为实数数据类型。 api.types.is_bool_dtype(arr_or_dtype) 检查提供的数组或数据类型是否为布尔数据类型。 api.types.is_categorical_dtype(arr_or_dtype) (已弃用)检查类似数组或数据类型是否属于分类数据类型。 api.types.is_complex_dtype(arr_or_dtype) 检查提供的数组或数据类型是否为复杂数据类型。 api.types.is_datetime64_any_dtype(arr_or_dtype) 检查提供的数组或数据类型是否为 datetime64 数据类型。 api.types.is_datetime64_dtype(arr_or_dtype) 检查类似数组或数据类型是否属于 datetime64 数据类型。 api.types.is_datetime64_ns_dtype(arr_or_dtype) 检查提供的数组或数据类型是否为 datetime64[ns] 数据类型。 api.types.is_datetime64tz_dtype(arr_or_dtype) (已弃用)检查类似数组或数据类型是否属于 DatetimeTZDtype 数据类型。 api.types.is_extension_array_dtype(arr_or_dtype) 检查一个对象是否是 pandas 扩展数组类型。 api.types.is_float_dtype(arr_or_dtype) 检查提供的数组或数据类型是否为浮点数据类型。 api.types.is_int64_dtype(arr_or_dtype) (已弃用)检查提供的数组或数据类型是否为 int64 数据类型。 api.types.is_integer_dtype(arr_or_dtype) 检查提供的数组或数据类型是否为整数数据类型。 api.types.is_interval_dtype(arr_or_dtype) (已弃用)检查类似数组或 dtype 是否属于 Interval dtype。 api.types.is_numeric_dtype(arr_or_dtype) 检查提供的数组或数据类型是否为数字数据类型。 api.types.is_object_dtype(arr_or_dtype) 检查类似数组或数据类型是否属于对象数据类型。 api.types.is_period_dtype(arr_or_dtype) (已弃用)检查类似数组或数据类型是否属于周期数据类型。 api.types.is_signed_integer_dtype(arr_or_dtype) 检查提供的数组或数据类型是否为有符号整数数据类型。 api.types.is_string_dtype(arr_or_dtype) 检查提供的数组或数据类型是否为字符串数据类型。 api.types.is_timedelta64_dtype(arr_or_dtype) 检查类似数组或数据类型是否属于 timedelta64 数据类型。 api.types.is_timedelta64_ns_dtype(arr_or_dtype) 检查提供的数组或数据类型是否为 timedelta64[ns] 数据类型。 api.types.is_unsigned_integer_dtype(arr_or_dtype) 检查提供的数组或数据类型是否为无符号整数数据类型。 api.types.is_sparse(编) (已弃用)检查类似数组是否是一维 pandas 稀疏数组。 可迭代的内省# api.types.is_dict_like(对象) 检查对象是否类似于字典。 api.types.is_file_like(对象) 检查该对象是否是类文件对象。 api.types.is_list_like(obj[, 允许集]) 检查对象是否类似于列表。 api.types.is_named_tuple(对象) 检查对象是否是命名元组。 api.types.is_iterator(对象) 检查该对象是否是迭代器。 标量内省# api.types.is_bool(对象) 如果给定对象是布尔值,则返回 True。 api.types.is_complex(对象) 如果给定对象很复杂,则返回 True。 api.types.is_float(对象) 如果给定对象是浮点数,则返回 True。 api.types.is_hashable(对象) 如果 hash(obj) 成功则返回 True,否则返回 False。 api.types.is_integer(对象) 如果给定对象是整数,则返回 True。 api.types.is_interval(对象) api.types.is_number(对象) 检查对象是否是数字。 api.types.is_re(对象) 检查对象是否是正则表达式模式实例。 api.types.is_re_compilable(对象) 检查该对象是否可以编译为正则表达式模式实例。 api.types.is_scalar(值) 如果给定对象是标量,则返回 True。