HoRain云--Pandas数组与数据类型速查手册

🎬 HoRain云小助手:个人主页
🔥 个人专栏: 《Linux 系列教程》《c语言教程》
⛺️生活的理想,就是为了理想的生活!
⛳️ 推荐
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
专栏介绍
|
专栏名称 |
专栏介绍 |
|
本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。 |
|
|
本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制! |
|
|
全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。 |
|
|
本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。 |
|
|
本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。 |
|
|
本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等) |
目录

根据搜索结果,我为您整理了一份完整的 Pandas 数组/标量/数据类型参考手册:
📚 Pandas 数组/标量/数据类型参考手册
一、Pandas 数组 (Arrays)
1.1 核心数组类型
| 类/方法 | 描述 |
|---|---|
pd.array(data, dtype) |
创建一个 Pandas 数组(ExtensionArray) |
pd.Series.array |
返回 Series 的底层数组(ExtensionArray) |
pd.arrays.DatetimeArray |
用于存储日期时间数据的数组 |
pd.arrays.TimedeltaArray |
用于存储时间间隔数据的数组 |
pd.arrays.PeriodArray |
用于存储周期数据的数组 |
pd.arrays.SparseArray |
用于存储稀疏数据的数组 |
pd.arrays.StringArray |
用于存储字符串数据的数组 |
pd.arrays.BooleanArray |
用于存储布尔数据的数组 |
pd.arrays.IntegerArray |
用于存储整数数据的数组 |
1.2 ExtensionArray 特性
from pandas.api.extensions import ExtensionArray
class StringArray(ExtensionArray):
def __init__(self, data):
self.data = data
def __len__(self):
return len(self.data)
def __getitem__(self, idx):
return self.data[idx]
def __setitem__(self, idx, value):
self.data[idx] = value
二、Pandas 标量 (Scalars)
2.1 常见标量类型
| 标量类/方法 | 描述 |
|---|---|
pd.NA |
表示缺失值的标量(类似于 NaN,但更通用) |
pd.NaN |
NumPy 的浮点缺失值 |
pd.NaT |
表示日期时间的缺失值(Not a Time) |
pd.Timestamp |
表示时间戳 |
pd.Timedelta |
表示时间间隔 |
pd.Period |
表示时间段 |
pd.Interval |
表示区间 |
2.2 空值类型对比
| 空值类型 | 适用场景 | 说明 |
|---|---|---|
pd.NA |
所有 Pandas 扩展类型 | 统一的缺失值表示 |
np.NaN |
NumPy 浮点数 | 仅适用于浮点类型 |
pd.NaT |
日期时间类型 | 时间相关的缺失值 |
None |
Python 对象 | Python 原生空值 |
三、Pandas 数据类型 (dtypes)
3.1 NumPy 基础类型
| 类型 | 别名 | 描述 |
|---|---|---|
int8, int16, int32, int64 |
np.int8 等 |
有符号整数 |
uint8, uint16, uint32, uint64 |
np.uint8 等 |
无符号整数 |
float16, float32, float64 |
np.float16 等 |
浮点数 |
complex64, complex128 |
np.complex64 等 |
复数 |
datetime64 |
np.datetime64 |
日期时间 |
timedelta64 |
np.timedelta64 |
时间间隔 |
3.2 Pandas 扩展类型(推荐)
| 类型 | 别名 | 描述 | 优势 |
|---|---|---|---|
Int8, Int16, Int32, Int64 |
pd.Int64Dtype() |
可空整数 | 支持 pd.NA |
UInt8, UInt16, UInt32, UInt64 |
pd.UInt64Dtype() |
可空无符号整数 | 支持 pd.NA |
Float32, Float64 |
pd.Float64Dtype() |
可空浮点数 | 支持 pd.NA |
string |
pd.StringDtype() |
字符串 | 更好的空值处理 |
boolean |
pd.BooleanDtype() |
布尔值 | 支持 pd.NA |
object |
- | Python 对象 | 通用但效率较低 |
3.3 dtype 使用示例
import pandas as pd
import numpy as np
# 指定列数据类型
df = pd.read_excel('data.xlsx', dtype={
'ID': 'int32',
'Name': 'string',
'Age': 'Int8', # 可空整数
'Salary': 'float32'
})
# 转换数据类型
series = pd.Series([1, 2, None, 4])
series = series.astype('Int64') # 转换为可空整数
# 自动推断最佳类型
df = df.convert_dtypes()
四、核心数据结构
4.1 Series(一维)
# 创建 Series
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
# 主要属性
s.index # 索引
s.values # 值
s.dtype # 数据类型
s.shape # 形状
s.nbytes # 字节大小
4.2 DataFrame(二维)
# 创建 DataFrame
df = pd.DataFrame({
'A': [1, 2, 3],
'B': ['x', 'y', 'z']
}, index=['row1', 'row2', 'row3'])
# 主要属性
df.columns # 列名
df.index # 行索引
df.dtypes # 各列数据类型
df.shape # 形状
五、版本兼容性注意事项(Pandas 2.0+)
| 变更项 | 说明 | 解决方案 |
|---|---|---|
| 时间索引行为 | 字符串不再自动对齐 datetime 索引 | 使用 pd.Timestamp 显式构造 |
| 扩展类型推荐 | 推荐使用 string、Int64 等扩展类型 |
使用 convert_dtypes() |
| 空值处理 | pd.NA 成为统一缺失值表示 |
避免混用 NaN 和 None |
六、实用技巧
6.1 数据类型检查
from pandas.api import types
types.is_integer_dtype(series) # 检查是否为整数类型
types.is_float_dtype(series) # 检查是否为浮点类型
types.is_string_dtype(series) # 检查是否为字符串类型
types.is_datetime64_any_dtype(series) # 检查是否为日期时间类型
6.2 内存优化
| 场景 | 推荐类型 | 内存节省 |
|---|---|---|
| 小整数 | Int8/Int16 |
最高 75% |
| 大整数 | Int32/Int64 |
视情况 |
| 小数 | Float32 |
50% |
| 文本 | string |
更高效 |
七、官方资源
- 📖 官方文档: https://pandas.pydata.org/docs/reference/index.html
- 🔧 API 参考: https://pandas.pydata.org/pandas-docs/stable/reference/api/
- 📚 入门教程: https://pandas.pydata.org/docs/user_guide/10min.html
💡 提示: Pandas 3.0.0 已发布,建议升级到最新版本以获得更好的性能和功能支持。使用
pd.__version__检查当前版本。
这份参考手册涵盖了 Pandas 数组、标量和数据类型的核心内容,可作为日常开发的速查指南!
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐




所有评论(0)