pandas索引操作

pandas的索引操作可以快速的完成多种功能。

import pandas as pd
import numpy as np

1. 首先pandas创建DataFrame

df_1 = pd.DataFrame([[‘Jack‘,‘M‘,40],[‘Tony‘,‘M‘,20],[‘Mary‘,‘F‘,30],[‘Bob‘,‘M‘,25]], columns=[‘name‘,‘gender‘,‘age‘])  #列表创建DataFrame
print(‘------ df_1是: ------‘)
print(df_1)

2. 直接列名检索

# 列名索引
a = df_1[‘name‘]
print(a)

3. 同时取多列数据

# 同时取多列
b = df_1[[‘name‘,‘age‘]]
print(b)

4. 切片索引

# 切片索引,按行索引
bb = df_1[1:3]
print(bb)

5. 条件索引

aa = df_1[df_1.age>25]
print(aa)

6. isin判断

# isin 索引
cc = df_1[df_1.name.isin([‘Jack‘,‘Bob‘])]
print(cc)

7. loc取行数据

# loc取行
dd = df_1.loc[df_1.name.isin([‘Jack‘,‘Bob‘])] #去满足条件的所有行
print(dd)

8. loc标签

# loc取行
ee = df_1.loc[1:3]  #直接按照标签取,不是属于切片,所以会1-3行全部取出来
print(ee)

9. 多个条件,‘|‘ 条件取行(‘或‘条件),逻辑条件

ff = df_1.loc[df_1.name.isin([‘Jack‘,‘Bob‘]) | (df_1.age>25)]  #多个条件,‘|‘条件取行
print(‘the value of ff is: ‘)
print(ff)
print(df_1.name.isin([‘Jack‘,‘Bob‘]) | (df_1.age>25))

10. 多个条件取行,‘&‘ 条件取行,(‘与‘ 条件),逻辑条件

gg = df_1.loc[df_1.name.isin([‘Jack‘,‘Bob‘]) & (df_1.age>25)]  #多个条件取行,‘&‘条件取行
print(‘the value of gg is: ‘)
print(gg)
print(df_1.name.isin([‘Jack‘,‘Bob‘]) & (df_1.age>25))

11. loc 按行、列条件取值,取其中某列,可用来取某一行某一列的值(也就是某个位置的值)

hh = df_1.loc[df_1.name.isin([‘Jack‘,‘Bob‘]) | (df_1.age>25), ‘age‘]
print(hh)

12. loc多行、列取值,取多行多列

ii = df_1.loc[1:3, ‘name‘:‘gender‘]  # ‘name‘:‘gender‘顺序有前后
print(‘the value of ii is: ‘)
print(ii)

13. iloc:切片

jj = df_1.iloc[1:3]  #此时按照切片规则取行
print(‘the value of jj is: ‘)
print(jj)

14. ix:之前的方法,现在可以用loc和iloc来实现,执行的时候会出现:DeprecationWarning: .ix is deprecated. Please use  .loc for label based indexing or  .iloc for positional indexing。

mm = df_1.ix[1:3]  #此时按照标签规则取行,而不是切片规则
print(‘the value of mm is: ‘)
print(mm)

nn = df_1.ix[1:3, ‘name‘:‘gender‘]  #此时按照标签规则取行,而不是切片规则
print(‘the value of nn is: ‘)
print(nn)

15. 如果其中的值都是数字,可以对整体进行限定,例如:

array_test = np.array([[1,2,3,4],[2,3,4,5],[3,4,5,6]])
df_3 = pd.DataFrame(array_test, index = [‘aa‘, ‘bb‘, ‘ff‘], columns = [‘c1‘, ‘c2‘, ‘c3‘, ‘c4‘])  #数组创建DataFrame
print(‘------ df_3是: ------‘)
print(df_3)

# 取满足条件的值:

df_4 = df_3[df_3>3]  #取满足条件的值
print(‘the value of df_4 is :‘)
print(df_4)

# 将满足条件的值重新赋值:

df_3[df_3>3]=0  #将满足条件的值重新赋值
print(‘the value of df_3 is :‘)
print(df_3)

##

原文地址:https://www.cnblogs.com/qi-yuan-008/p/12412018.html

时间: 2024-10-29 19:49:44

pandas索引操作的相关文章

pandas索引index

pandas索引 html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary { display: block } audio,canvas,progress,video { display: inline-block; vertical-align: baseline }

3.Lucene3.x API分析,Director 索引操作目录,Document,分词器

 1  Lucene卡发包结构分析 包名 功能 org.apache.lucene.analysis Analysis提供自带的各种Analyzer org.apache.lucene.collation 包含collationKeyFilter和collationKeyAnalyzer两个相同功能的类,将所有token转为CollationKey,与IndexableBinaryStringTools一起存为term org.apache.lucene.document Document包

elasticsearch建立索引操作的API

ElasticSearch-API-Index 索引创建API允许初始化一个索引.ElasticSearch对多重索引提供了支持,包括跨多个索引执行操作.每个索引在创建时可以让一个特定的设置项与其关联. 最简单的方式创建索引 curl -XPUT 'http://localhost:9200/twitter/' 在创建索引的时候指定分片和副本数量,参数格式采用YAML格式 curl -XPUT 'http://localhost:9200/twitter/' -d ' index:   numb

Mysql之表的操作与索引操作

表的操作: 1.表的创建: create table if not exists table_name(字段定义); 例子: create table if not exists user(id int auto_increment, uname varchar(20), address varchar(200), updateTime datetime, primary key(id)); // 设置主键 2.表(show tables;)定义查看: show create table tab

【转载】8天学通MongoDB——第四天 索引操作

这些天项目改版,时间比较紧,博客也就没跟得上,还望大家见谅. 好,今天分享下mongodb中关于索引的基本操作,我们日常做开发都避免不了要对程序进行性能优化,而程序的操作无非就是CURD,通常我们 又会花费50%的时间在R上面,因为Read操作对用户来说是非常敏感的,处理不好就会被人唾弃,呵呵. 从算法上来说有5种经典的查找,具体的可以参见我的算法速成系列,这其中就包括我们今天所说的“索引查找”,如果大家对sqlserver比较了解 的话,相信索引查找能给我们带来什么样的性能提升吧. 我们首先插

Elasticsearch-PHP 索引操作(转)

索引操作 本节通过客户端来介绍一下索引API的各种操作.索引操作包含任何管理索引本身(例如,创建索引,删除索引,更改映射等等). 我们通过一些常见的操作的代码片段来介绍,然后在表格中列出剩下的方法.REST API的参数是相同的,所以它应该很容易执行你所需要的操作. 创建一个索引 索引操作都包含在一个独特的命名空间中,和根对象上的方法区分开.举个例子,让我们创建一个索引: $client = new Elasticsearch\Client();$indexParams['index'] = '

Mongodb学习笔记三(Mongodb索引操作及性能测试)

第三章 索引操作及性能测试 索引在大数据下的重要性就不多说了 下面测试中用到了mongodb的一个客户端工具Robomongo,大家可以在网上选择下载. 插入 测试数据 首先插入100万条测试数据 for(var i=1;i<1000000;i++){ var person={ Name:"jack"+i, Age:i, Address:["henan","wuhan"], Course:[ {Name:"shuxue"

着重基础之—MySql 不能遗忘的索引操作

着重基础之—MySql 不能遗忘的索引操作 关于MySql索引的基础知识我就不在这里写了,我不太想当信息的搬运工. 技巧分享:Workbench 作为一款专为MySQL设计的ER/数据库建模工具.除了管理数据库外,其实也是一款Sql语句生成利器.合理利用,将带来事半功倍的效果.当然,前提是我们对基础知识的了解. 我先来整理一些索引操作的Sql语句,之所以整理,起因是我遇到问题时,在百度里查到的回复,基本上都是错的,需要有人来纠正. 1.多主键(PRIMARY)删除 假设场景:你在表里定义了多个主

DF学Mysql(三)——索引操作

概要: 数据库对象索引其实与书的目录非常相似,主要是为了提高从表中检索数据的速度. 由于数据存储在数据库表中,所以索引是创建在数据库表对象上的,由表中的一个字段或多个字段生成的键组成,这些键存储在数据结构(B-树或哈希表)中.通过MYSQL可以快速有效地查找与键值相关联的字段. 索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,并且每种存储引擎也不一定支持所有索引类型. 根据存储引擎定义每个表的最大索引数和最大索引长度.所有存储引擎支持每个表至少16个索引,总索引长度至少为256