pandas 的index用途
# 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用途的更多相关文章
- Pandas的index属性
我们在统计数据的长度或者个数,不用统计去专门获取数值,而是用index这个数据获取即可,DataFrame的index直接就是最前面的索引号,如果要统计列的个数,使用DataFrame.colums获 ...
- pandas更换index,column名称
1)仅换掉index名称 df.index = list 2)调整index时,后面的项目也要跟着调整: df.reindex(list) 注意如果list中出现了df中没有的index,后面的项目会 ...
- Python 数据处理扩展包: pandas 模块的DataFrame介绍(创建和基本操作)
DataFrame是Pandas中的一个表结构的数据结构,包括三部分信息,表头(列的名称),表的内容(二维矩阵),索引(每行一个唯一的标记). 一.DataFrame的创建 有多种方式可以创建Data ...
- Pandas日期数据处理:如何按日期筛选、显示及统计数据
前言 pandas有着强大的日期数据处理功能,本期我们来了解下pandas处理日期数据的一些基本功能,主要包括以下三个方面: 按日期筛选数据 按日期显示数据 按日期统计数据 运行环境为 windows ...
- pandas小记:pandas时间序列分析和处理Timeseries
http://blog.csdn.net/pipisorry/article/details/52209377 其它时间序列处理相关的包 [P4J 0.6: Periodic light curve ...
- pandas(一)
import numpy as py import pandas as pd Series对象 data= pd.Series([0.25,0.5,0.75,1.0]) 默认索引是数字 data= ...
- Python 数据处理库 pandas 入门教程
Python 数据处理库 pandas 入门教程2018/04/17 · 工具与框架 · Pandas, Python 原文出处: 强波的技术博客 pandas是一个Python语言的软件包,在我们使 ...
- Python pandas & numpy 笔记
记性不好,多记录些常用的东西,真·持续更新中::先列出一些常用的网址: 参考了的 莫烦python pandas DOC numpy DOC matplotlib 常用 习惯上我们如此导入: impo ...
- Pandas python
原文: https://github.com/catalystfrank/Python4DataScience.CH 和大熊猫们(Pandas)一起游戏吧! Pandas是Python的一个 ...
随机推荐
- 一个”.java”源文件中是否可以包含多个类(不是内部类)?有什么限制
这个是可以的,一个“.java”源文件里面可以包含多个类,但是只允许有一个public类,并且类名必须和文件名一致. 每个编译单元只能有一个public 类.这么做的意思是,每个编译单元只能有一个公开 ...
- c# SQLite 判断表、字段是否存在的方法,新增、删除、重命名列
SQLiteHelper class: using System; using System.Collections.Generic; using System.Text; using System. ...
- vundle就是vim bundle的插件管理成ide
如何配置一个高效的php编辑环境, 很好 对vundle的操作, 除了仓库名称是vundle.git (*.git就是仓库) 和 本地目录名是 vundle之外, 其他的操作都是bundle git ...
- 平时碰到系统CPU飙高和频繁GC,你会怎么排查?
处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题.当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警.本文主要针对系统运行缓慢这 ...
- 异步分发任务celery
Celery简介 Celery是一个功能完备即插即用的任务队列.它使得我们不需要考虑复杂的问题,使用非常简单. celery适用异步处理问题,当遇到发送邮件.或者文件上传, 图像处理等等一些比较耗时的 ...
- 各种tips汇总
才疏学浅,以下整理的东西有些可能还不成熟,措辞有待改进,但是都是我在敲代码的过程中,一点一滴积累总结的,如有不妥和错误,希望大家指正. 让行及元素变成块级元素的方式: position:absolut ...
- c# 排列组合代码类
/// <summary> /// 排列组件算法类 /// </summary> /// <typeparam name="T"></ty ...
- jmeter的cookie跨线程传递
测试计划需要设置成独立运行每个线程组获取cookie需要先执行才能使接下来的cookie使用正确执行 登录线程组登录,使用正则表达式提取器提取所需cookie然后使用BeanShellPostProc ...
- 【MM系列】SAP 创建工厂
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 创建工厂 前言部分 大家 ...
- hadoop 2.5.2源码编译
编译过程漫长无比,错误百出,需要耐心耐心!! 1.准备的环境及软件 操作系统:Centos6.4 64位 jdk:jdk-7u80-linux-x64.rpm,不要使用1.8 maven:apache ...