# pandas的索引index的用途
# 把数据存储于普通的column列也能用于数据查询,那使用index有什么好处?
# 1、更方便的数据查询
# 2、使用index可以获得性能提升
# 3、 自动的数据对其功能
# 4、更多强大的数据结构支持 import pandas as pd # 1 使用index查询数据
# drop==False,让索引列保持在columns
df.set_index("userId",inplace=True,drop = False)
df.head()
df.index
# 使用index的查询方法
df.loc[500].head(5)
# 使用column的condition查询方法
df.loc[df["userId"]==500].head() # 2 使用index会提升查询性能
# 如果index是惟一的,pandas会使用哈希表优化,查询性能为O(1)
# 如果index不是惟一的,但是有序,pandas会使用二分查找算法,查询性能为O(logN
# 如果index是完全随机的,那么每次查询都要扫描去哪表,查询性能为O(N) # 实验一:完全随机的顺序查询
# 将数据随机打散
from sklearn.utils import shuffle
df_shuffle = shuffle(df)#打散数据 # 索引是否是递增的
df_shuffle.index.is_mononic_increasing
# 判断索引是否是唯一的
df_shuffle.index.is_unique
# 计时,查询id ==500数据的性能
%timeit df_shuffle.loc[500] # 实验二:将index排序后的查询
df_sorted = df_shuffle.sort_index()
df_sorted.head()
#索引是否是递增的
df_sorted.index.is_monotonic_increasing
df_sorted.index.is_unique
%timeit df_sorted.loc[500] # 3 使用index能自动对齐数据(包括series & dataframe)
s1 = pd.Series([1,2,30],index= list("abc"))
s2 = pd.Series([2,3,4],index=list("bcd"))
s1 + s2 # 4 使用index更多更强大的数据结构支持
# 很多强大的数据结构
#
# Categoricallndex ,基于分类数的index,提升性能
# Multilndex , 多维索引,用于group by多维聚合结果等
# Datetimeindex ,时间类型索引,强大的日期和时间的方法支持

好好学习,天天向上

pandas 的index用途的更多相关文章

  1. Pandas的index属性

    我们在统计数据的长度或者个数,不用统计去专门获取数值,而是用index这个数据获取即可,DataFrame的index直接就是最前面的索引号,如果要统计列的个数,使用DataFrame.colums获 ...

  2. pandas更换index,column名称

    1)仅换掉index名称 df.index = list 2)调整index时,后面的项目也要跟着调整: df.reindex(list) 注意如果list中出现了df中没有的index,后面的项目会 ...

  3. Python 数据处理扩展包: pandas 模块的DataFrame介绍(创建和基本操作)

    DataFrame是Pandas中的一个表结构的数据结构,包括三部分信息,表头(列的名称),表的内容(二维矩阵),索引(每行一个唯一的标记). 一.DataFrame的创建 有多种方式可以创建Data ...

  4. Pandas日期数据处理:如何按日期筛选、显示及统计数据

    前言 pandas有着强大的日期数据处理功能,本期我们来了解下pandas处理日期数据的一些基本功能,主要包括以下三个方面: 按日期筛选数据 按日期显示数据 按日期统计数据 运行环境为 windows ...

  5. pandas小记:pandas时间序列分析和处理Timeseries

    http://blog.csdn.net/pipisorry/article/details/52209377 其它时间序列处理相关的包 [P4J 0.6: Periodic light curve ...

  6. pandas(一)

    import numpy as py import pandas as pd Series对象 data= pd.Series([0.25,0.5,0.75,1.0])   默认索引是数字 data= ...

  7. Python 数据处理库 pandas 入门教程

    Python 数据处理库 pandas 入门教程2018/04/17 · 工具与框架 · Pandas, Python 原文出处: 强波的技术博客 pandas是一个Python语言的软件包,在我们使 ...

  8. Python pandas & numpy 笔记

    记性不好,多记录些常用的东西,真·持续更新中::先列出一些常用的网址: 参考了的 莫烦python pandas DOC numpy DOC matplotlib 常用 习惯上我们如此导入: impo ...

  9. Pandas python

    原文:  https://github.com/catalystfrank/Python4DataScience.CH   和大熊猫们(Pandas)一起游戏吧!   Pandas是Python的一个 ...

随机推荐

  1. jQuery file upload process queue

    在jquery.ui.widget.js中bridge处打上断点,查看instance内容 $.widget.bridge = function( name, object ) { var fullN ...

  2. nodejs 文件操作

    前言: nodejs 自带的文件操作的模块  fs 就是对文件的增删查改: 就像我们用的服务器,我们没有办法在运行的文件上进行一直的修改,因为他不向浏览器,刷新后我们的文件会自己修改: 如果想要更改我 ...

  3. 【后台管理系统】—— Ant Design Pro 页面相关(三)

    一.卡片Card分类 与普通卡片使用区别:底部按钮及内容样式 <Card hoverable bodyStyle={{ paddingBottom: 20 }} actions={[ // 卡片 ...

  4. ubuntu 18.04 gcc g++降级4.8版

    $ sudo apt-get install -y gcc-4.8 $ sudo apt-get install -y g++-4.8 $ cd /usr/bin $ sudo rm gcc $ su ...

  5. delphi 进程通讯之WM_COPYDATA 发送程序(SendData.exe) 可用

    http://www.delphitop.com/html/wangluo/1529.html delphi 进程通讯之WM_COPYDATA 发送程序(SendData.exe) 作者:admin ...

  6. C# sqlite 无法识别的datetime格式 FromOADate

    再读取不可控数据库datetime字段时,遇到了一个奇葩问题——“无法识别的datetime格式” 搞了半天…… 数据库里看:2017-06-06 10:28:30.000 不做处理查询报错:“无法识 ...

  7. docker nginx ssl

    docker run -d -p 80:80 -p 443:443 -v $(pwd)/conf/conf.d:/etc/nginx/conf.d -v $(pwd)/cert:/etc/nginx/ ...

  8. SHELL输出颜色和闪烁控制

    Shell 颜色和闪烁控制 在Shell下有时候需要定制输出,比如给输出加上颜色,或者显示高亮,或者添加闪烁等. 然后这些颜色代码或者控制码等相对不好记住.这个时候我们可以考虑把最终想要的结果制定成对 ...

  9. NW.js

    1.package.json属性说明: ——window窗口外观常用属性包括: title : 字符串,设置默认 title width/height : 主窗口的大小 toolbar : bool ...

  10. Excel表格数据导入MySQL数据库

    有时候项目需要将存在表格中的批量数据导入数据库,最近自己正好碰到了,总结一下: 1.将excel表格另存为.csv格式文件,excel本身的.xlsx格式导入时可能会报错,为了避免不必要的格式错误,直 ...