Pandas Index 对象
Pandas 的 Index 对象是用于标识轴标签的基类,它提供了丰富的功能来表示和管理数据的索引。
以下是 Index 对象的一些关键特性和用途:
-
唯一标识
:
Index
对象为数据提供唯一的标识符,这对于数据的选择和操作至关重要。
-
标签基础
:与基于位置的索引(如 Python 列表的索引)不同,
Index
允许基于标签的索引,这使得数据操作更加直观和灵活。
-
数据类型支持
:
Index
可以容纳多种类型的数据,包括整数、浮点数、字符串、日期时间等。
Pandas 提供了几种不同的 Index 类型,用于不同的场景:
-
RangeIndex
:一个内存节省型的整数值索引对象,类似于 Python 的
range
对象。
-
Index
:最基本的索引类型,可以包含任何类型的数据。
-
MultiIndex
:一个多级索引,允许你拥有多个索引级别,类似于数据框架中的多个列。
-
DatetimeIndex
:一个针对日期时间数据优化的索引,提供了日期时间相关的功能。
-
PeriodIndex
:基于时间段的索引,例如年、季度等。
-
TimedeltaIndex
:基于时间差(Δt)的索引。
Index 构造函数
|
类/方法
|
描述
|
pd.Index(data, dtype, name)
|
创建一个 Index 对象,支持自定义数据、数据类型和名称。
|
Index 属性
|
属性
|
描述
|
Index.values
|
返回 Index 的数据部分(numpy 数组)。
|
Index.dtype
|
返回 Index 的数据类型。
|
Index.name
|
返回或设置 Index 的名称。
|
Index.shape
|
返回 Index 的形状(元组形式)。
|
Index.size
|
返回 Index 中元素的数量。
|
Index.nlevels
|
返回 Index 的层级数(对于 MultiIndex)。
|
Index.is_unique
|
检查 Index 中的值是否唯一。
|
Index.is_monotonic
|
检查 Index 是否单调递增。
|
Index.is_monotonic_decreasing
|
检查 Index 是否单调递减。
|
Index.has_duplicates
|
检查 Index 是否有重复值。
|
Index.empty
|
检查 Index 是否为空。
|
Index 方法
数据操作
|
方法
|
描述
|
Index.append(other)
|
将另一个 Index 追加到当前 Index。
|
Index.drop(labels)
|
删除指定的标签。
|
Index.insert(loc, item)
|
在指定位置插入元素。
|
Index.unique()
|
返回 Index 中的唯一值。
|
Index.drop_duplicates()
|
删除重复值。
|
Index.sort_values()
|
按值排序。
|
Index.sort_values(ascending=False)
|
按值降序排序。
|
Index.tolist()
|
将 Index 转换为列表。
|
Index.to_numpy()
|
将 Index 转换为 numpy 数组。
|
Index.to_frame()
|
将 Index 转换为 DataFrame。
|
Index.astype(dtype)
|
将 Index 转换为指定数据类型。
|
Index.map(func)
|
对 Index 中的每个元素应用函数。
|
Index.where(cond, other)
|
根据条件替换值。
|
Index.mask(cond, other)
|
根据条件替换值(与
where
相反)。
|
索引操作
|
方法
|
描述
|
Index.get_loc(key)
|
返回指定标签的位置。
|
Index.get_indexer(target)
|
返回目标 Index 在当前 Index 中的位置。
|
Index.slice_locs(start, end)
|
返回指定范围的切片位置。
|
Index.intersection(other)
|
返回两个 Index 的交集。
|
Index.union(other)
|
返回两个 Index 的并集。
|
Index.difference(other)
|
返回两个 Index 的差集。
|
Index.symmetric_difference(other)
|
返回两个 Index 的对称差集。
|
Index.isin(values)
|
检查 Index 中的值是否在指定列表中。
|
Index.reindex(target)
|
根据目标 Index 重新索引。
|
Index.reindex_like(other)
|
根据另一个 Index 重新索引。
|
统计计算
|
方法
|
描述
|
Index.min()
|
返回 Index 中的最小值。
|
Index.max()
|
返回 Index 中的最大值。
|
Index.argmin()
|
返回最小值的索引位置。
|
Index.argmax()
|
返回最大值的索引位置。
|
Index.value_counts()
|
返回 Index 中每个值的频率。
|
MultiIndex 方法
|
方法
|
描述
|
pd.MultiIndex.from_arrays()
|
从数组创建 MultiIndex。
|
pd.MultiIndex.from_tuples()
|
从元组创建 MultiIndex。
|
pd.MultiIndex.from_product()
|
从笛卡尔积创建 MultiIndex。
|
MultiIndex.levels
|
返回 MultiIndex 的层级。
|
MultiIndex.codes
|
返回 MultiIndex 的编码。
|
MultiIndex.swaplevel(i, j)
|
交换两个层级的位置。
|
MultiIndex.droplevel(level)
|
删除指定层级。
|
MultiIndex.set_levels(levels)
|
设置 MultiIndex 的层级。
|
MultiIndex.set_codes(codes)
|
设置 MultiIndex 的编码。
|
实例
importpandasaspd# 创建 Indexidx=pd.Index([1,2,3],name='MyIndex')# 查看属性print(idx.values)# 输出数据部分print(idx.name)# 输出名称# 数据操作idx_new=idx.append(pd.Index([4,5]))print(idx_new)# 输出追加后的 Index# 索引操作print(idx.get_loc(2))# 输出标签 2 的位置# MultiIndex 操作arrays=[[1,1,2,2],['A','B','A','B']]multi_idx=pd.MultiIndex.from_arrays(arrays,names=('Num','Letter'))print(multi_idx)
如果需要更详细的信息,可以参考
Pandas 官方文档
。