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索引,修改索引,复合索引,将某列设为索引相关推荐

  1. python pandas库读取excel/csv中指定行或列数据详解

    通过阅读表格,可以发现Pandas中提供了非常丰富的数据读写方法,下面这篇文章主要给大家介绍了关于python利用pandas库读取excel/csv中指定行或列数据的相关资料,需要的朋友可以参考下 ...

  2. python列索引行的数据公式_用列和行索引函数填充dataframe缺失元素的最有效方法...

    我有一个缺少值的数据帧.在import pandas as pd import numpy as np np.random.seed([3,1415]) df = pd.DataFrame(np.ra ...

  3. Python pandas 操作 csv 修改 2021/8/29

    废话不多说,知道大家只喜欢看美女,哦哦哦好头疼哦~ 啊不是,是看代码 csv 做操作编辑我想最方便还是pandas了,它不用占用文件,要写就写,要删就删,别问我为什么要用csv搞这个,问就是我只为写教 ...

  4. Python Pandas 常用的数据结构有哪些?详解Series、DataFrame、Index数据结构。

    Pandas常用数据结构 Pandas简介 Series 构建 Series 对象 通过数组/列表 通过ndarray 通过dict 指定index Series 数据结构 查看 Series 数据 ...

  5. python pandas 讲解ppt_Python数据分析之Pandas入门

    一.概述 之前我们讲了Python数据分析中基础的工具包Numpy,今天我们来讲讲Pandas,由于Pandas的内容也比较多,本文主要还是讲解一些入门的基本知识. 二.详细说明 同样的我们来引入使用 ...

  6. Python字符串index()

    Python String index() function returns the lowest index where the specified substring is found. If t ...

  7. python pandas dataframe 不显示索引_Python DataFrame 设置输出不显示index(索引)值的方法...

    Python DataFrame 设置输出不显示index(索引)值的方法 在输出代码行中,加入"index=False"如下: m_pred_survived.to_csv(&q ...

  8. python根据index合并_通过index和cols合并/联接/追加两个Pandas数据帧,其中包含多索引列...

    为了这件事我一直把头撞在桌子上,不知道有没有办法,也许我在尝试一些不可能的事情.在 我有两个带有多索引列(三级)和时间索引(单级)的数据帧.第一个是这样的:border a-b c-d from a ...

  9. pandas把dataframe的数据列转化为索引列实战:单列转化为索引、多列转化为复合索引

    pandas把dataframe的数据列转化为索引列实战:单列转化为索引.多列转化为复合索引 目录

最新文章

  1. Java --循环截取字符串
  2. zabbix NFS挂载 监控模板
  3. pb数据窗口显示图片_HTAP数据库系列 | 企业级数据仓库如何应对个性化营销?
  4. iOS中XML解析汇总
  5. [MyBatisPlus]雪花算法
  6. Jupyter Notebook安装 nbextensions 插件
  7. fun函数python_Python函数
  8. 两点(51Nod-1416)
  9. linux系统预定义变量有哪些,C++中几个预定义变量的介绍
  10. python中使用pip安装报错:Fatal error in launcher... 解决方法
  11. java邮箱正则表达式_Java正则表达式详解
  12. linux 内核块设备驱动,linux之块设备驱动
  13. linux自动化安装集群,Redis自动化安装以及集群实现
  14. tongweb设置gzip
  15. 网易AI平台开放多项技术,助力网易七鱼智能客服升级
  16. 多边形(n边形)面积计算公式hdu2036
  17. [原创] HBuildX,微信小程序模拟器报错(如若已在管理后台更新域名配置,请刷新项目配置后重新编译项目)
  18. 【Comet OJ - 2019国庆欢乐赛 F】 高速公路
  19. 用C#(入门) 双色球摇奖机 随机数实现
  20. Flutter 中文文档:Flutter 应用里的国际化

热门文章

  1. Java接口:实现防盗门功能
  2. 基于HTML5气3D仿真培训系统
  3. OpenCV之图像像素归一化
  4. 一个app从设想到上线运营的完整过程
  5. 数据分析实际案例之:pandas在泰坦尼特号乘客数据中的使用
  6. 英语不好学不好编程?程序员记忆单词专属诀窍,效果简直要逆天
  7. Hamming Distance (汉明距离)
  8. 响应式扩展_响应式和无限扩展的JS动画
  9. 基带信号与频带信号的基础认识
  10. 【Elang】dialyzer