Python pandas,index索引,修改索引,复合索引,将某列设为索引
demo.py(index索引,修改索引,将DataFrame某列设为索引):
# coding=utf-8
import numpy as np
import pandas as pddf = pd.DataFrame(np.arange(12, 24).reshape((3, 4)), index=["a", "b", "c"], columns=["WW", "XX", "YY", "ZZ"])
print(df)
'''WW XX YY ZZ
a 12 13 14 15
b 16 17 18 19
c 20 21 22 23
'''# 查看索引 (索引是可以重复的)
print(df.index) # Index(['a', 'b', 'c'], dtype='object')# 修改索引
df.index = ["aa", "bb", "cc"] # []列表的长度必须与df行数一致。
print(df)
'''WW XX YY ZZ
aa 12 13 14 15
bb 16 17 18 19
cc 20 21 22 23
'''# 根据索引重新构建数据
df2 = df.reindex(["aa", "pp"]) # 索引存在就正常显示数据,不存在的索引其数据就是NaN
print(df2)
'''WW XX YY ZZ
aa 12.0 13.0 14.0 15.0
pp NaN NaN NaN NaN
'''# 将某列设置为索引
df3 = df.set_index("YY") # 将"YY"列设为索引(默认同时删除"YY"列的数据)
print(df3)
'''WW XX ZZ
YY
14 12 13 15
18 16 17 19
22 20 21 23
'''df4 = df.set_index("YY", drop=False) # drop=False 表示保留原先"YY"列的数据。(默认为True)
print(df4)
'''WW XX YY ZZ
YY
14 12 13 14 15
18 16 17 18 19
22 20 21 22 23
'''# unique()某列去重后的内容
print(df["ZZ"].unique()) # [15 19 23] ndarray类型df.index = ["ll", "ll", "mm"] # 索引可以重复
# 去重后的索引
print(df.index.unique()) # Index(['ll', 'mm'], dtype='object')# index索引有长度
print(len(df.index)) # 3# index索引对象可以转换成列表类型
print(list(df.index)) # ['ll', 'll', 'mm']
demo.py(复合索引,通过复合索引取值):
# coding=utf-8
import numpy as np
import pandas as pddf = pd.DataFrame(np.arange(12, 24).reshape((3, 4)), index=["a", "b", "c"], columns=["WW", "XX", "YY", "ZZ"])
print(df)
'''WW XX YY ZZ
a 12 13 14 15
b 16 17 18 19
c 20 21 22 23
'''# 复合索引 将多列设置为索引
df2 = df.set_index(["XX", "YY"]) # 如果只设置一列不需要[],如果设置多列需要[]
print(df2)
'''WW ZZ
XX YY
13 14 12 15
17 18 16 19
21 22 20 23
'''print(df2.index) # 复合索引
'''
MultiIndex(levels=[[13, 17, 21], [14, 18, 22]],codes=[[0, 1, 2], [0, 1, 2]],names=['XX', 'YY'])
--levels表示去重后的索引
'''# Series类型的复合索引
s1 = df2["WW"] # Series类型 (只取了一列)。 df2[["WW"]]是DataFrame类型
print(s1) # Series类型
'''
XX YY
13 14 12
17 18 16
21 22 20
Name: WW, dtype: int64
'''# 根据复合索引取值
print(s1[13][14]) # 12 索引可以重复,一个索引可能对应多个值(如果对应多个值返回Series类型)
print(s1[13, 14]) # 12 与上一句等同
print(s1[13]) # Series类型。 如果想通过"YY"索引取值,可以先swaplevel()交换索引次序再取值。
'''
YY
14 12
Name: WW, dtype: int64
'''
# 通过复合索引修改
s1[13][14] = 55
print(s1)
'''
XX YY
13 14 55
17 18 16
21 22 20
Name: WW, dtype: int64
'''# swaplevel()交换索引先后次序。
s2 = s1.swaplevel() # 将"YY"索引放前,"XX"索引放后
print(s2)
'''
YY XX
14 13 12
18 17 16
22 21 20
Name: WW, dtype: int64
'''# DataFrame的复合索引
print(df2)
'''WW ZZ
XX YY
13 14 12 15
17 18 16 19
21 22 20 23
'''# DataFrame通过复合索引取值
print(df2.loc[13].loc[14]) # Series类型。 索引可以重复,可能对应多个值(DataFrame类型)
'''
WW 12
ZZ 15
Name: 14, dtype: int64
'''
print(df2.loc[13]) # DataFrame类型。 如果想通过"YY"索引取值,可以先swaplevel()交换索引次序再取值。
'''WW ZZ
YY
14 12 15
'''# swaplevel()交换索引先后次序。
df3 = df2.swaplevel() # 将"YY"索引放前,"XX"索引放后
print(df3)
'''WW ZZ
YY XX
14 13 12 15
18 17 16 19
22 21 20 23
'''
Python pandas,index索引,修改索引,复合索引,将某列设为索引相关推荐
- python pandas库读取excel/csv中指定行或列数据详解
通过阅读表格,可以发现Pandas中提供了非常丰富的数据读写方法,下面这篇文章主要给大家介绍了关于python利用pandas库读取excel/csv中指定行或列数据的相关资料,需要的朋友可以参考下 ...
- python列索引行的数据公式_用列和行索引函数填充dataframe缺失元素的最有效方法...
我有一个缺少值的数据帧.在import pandas as pd import numpy as np np.random.seed([3,1415]) df = pd.DataFrame(np.ra ...
- Python pandas 操作 csv 修改 2021/8/29
废话不多说,知道大家只喜欢看美女,哦哦哦好头疼哦~ 啊不是,是看代码 csv 做操作编辑我想最方便还是pandas了,它不用占用文件,要写就写,要删就删,别问我为什么要用csv搞这个,问就是我只为写教 ...
- Python Pandas 常用的数据结构有哪些?详解Series、DataFrame、Index数据结构。
Pandas常用数据结构 Pandas简介 Series 构建 Series 对象 通过数组/列表 通过ndarray 通过dict 指定index Series 数据结构 查看 Series 数据 ...
- python pandas 讲解ppt_Python数据分析之Pandas入门
一.概述 之前我们讲了Python数据分析中基础的工具包Numpy,今天我们来讲讲Pandas,由于Pandas的内容也比较多,本文主要还是讲解一些入门的基本知识. 二.详细说明 同样的我们来引入使用 ...
- Python字符串index()
Python String index() function returns the lowest index where the specified substring is found. If t ...
- python pandas dataframe 不显示索引_Python DataFrame 设置输出不显示index(索引)值的方法...
Python DataFrame 设置输出不显示index(索引)值的方法 在输出代码行中,加入"index=False"如下: m_pred_survived.to_csv(&q ...
- python根据index合并_通过index和cols合并/联接/追加两个Pandas数据帧,其中包含多索引列...
为了这件事我一直把头撞在桌子上,不知道有没有办法,也许我在尝试一些不可能的事情.在 我有两个带有多索引列(三级)和时间索引(单级)的数据帧.第一个是这样的:border a-b c-d from a ...
- pandas把dataframe的数据列转化为索引列实战:单列转化为索引、多列转化为复合索引
pandas把dataframe的数据列转化为索引列实战:单列转化为索引.多列转化为复合索引 目录
最新文章
- Java --循环截取字符串
- zabbix NFS挂载 监控模板
- pb数据窗口显示图片_HTAP数据库系列 | 企业级数据仓库如何应对个性化营销?
- iOS中XML解析汇总
- [MyBatisPlus]雪花算法
- Jupyter Notebook安装 nbextensions 插件
- fun函数python_Python函数
- 两点(51Nod-1416)
- linux系统预定义变量有哪些,C++中几个预定义变量的介绍
- python中使用pip安装报错:Fatal error in launcher... 解决方法
- java邮箱正则表达式_Java正则表达式详解
- linux 内核块设备驱动,linux之块设备驱动
- linux自动化安装集群,Redis自动化安装以及集群实现
- tongweb设置gzip
- 网易AI平台开放多项技术,助力网易七鱼智能客服升级
- 多边形(n边形)面积计算公式hdu2036
- [原创] HBuildX,微信小程序模拟器报错(如若已在管理后台更新域名配置,请刷新项目配置后重新编译项目)
- 【Comet OJ - 2019国庆欢乐赛 F】 高速公路
- 用C#(入门) 双色球摇奖机 随机数实现
- Flutter 中文文档:Flutter 应用里的国际化