欢迎光临散文网 会员登陆 & 注册

pandas MultiIndex多级索引实例:美国城市宜居性、创业投资记录

2023-07-28 14:47 作者:矢来美羽MIUYARAI  | 我要投稿

美国250个城市的宜居性:neighborhoods.csv

链接:https://pan.baidu.com/s/1wThRBDU1DUyk5blmGHyE0Q?pwd=1234

1. 多级索引的读取

直接读取可见,neighborhoods.csv包含三级索引,但并未被识别出:

使用index_col = [0, 1, 2]把左边三列转为index,使用header = [0, 1]把上面两行转为header:

现在,左边的行名index是一个三元素的元组,例如:('MO', 'Fisherborough', '244 Tracy View')

上边的列名column是一个两元素元组,例如:(Culture, Restaurants)

对于index的index(也就是MultiIndex),用neighborhoods.index.names表示:

对于column的index(也就是MultiIndex),尚未赋值。可通过如下方法赋值:

显示效果如下:(也位于左上角

从MultiIndex中获得index,采用get_level_values():

对唯一值的数量(num)计数是用.nuique

查看唯一值是用.unique():(关于行列的提取方式,参见3. 行列提取

2. 排序

按多级index按顺序排:neighborhoods.sort_index()

自定义升降序:

自定义参与排序:

和二维DataFrame一样,添加axis = 1可实现对column排序:

3. 行列提取

3.1 列提取

必须以元组的形式,一级一级。

单列:Series,不显示column

多列:DataFrame,会显示column

3.2 行提取

使用.loc:

3.3 行列提取

为避免歧义,建议分别使用两个元组:(元组内的第二个可以是同级,也可以是次级)

输出:

跨首级选择:灵活使用列表

常规切片:(首尾包含)

数字切片:(有首无尾,闭开区间)

4. 交叉选择(x select)

仅通过一个级别定位值,即使不是首级:.xs()

例1:二级index是"Lake Nicole"定位

例2:二级column是"Museums"定位

多重要求则用元组。

5. 修改index索引

5.1 去掉索引

MultiIndex顺序修改:reorder_levels()

重置索引为默认的数字形式:reset_index()

从index移动到DataFrame的column:

使用drop删除选中MultiIndex:

5.2 添加索引

目前是纯数字索引:

使用set_index(key=)添加:

如果是二级column:

6. 示例:数据整理

创建创业投资记录investments.csv的三级MultiIndex。

先查看唯一值的量,以决定分级:

选择3 -> 16 -> 61:

输出效果:


pandas MultiIndex多级索引实例:美国城市宜居性、创业投资记录的评论 (共 条)

分享到微博请遵守国家法律