首页 > 其他分享 >索引操作

索引操作

时间:2023-10-26 23:15:34浏览次数:33  
标签:arr dtype reindex 索引 int64 print 操作

重置索引reindex()

重置索引 DataFrame.reindex(labels=None,index=None,columns=None,axis=None,method=None,copy=True,fill_value=nan,limit=None) method: 插值填充的方式,向前填充ffill,向后填充bfill fill_values: 引入缺失值时使用的替代值 limit: 前项或者后项填充时的最大填充量

 

import numpy as np
import pandas as pd
arr_0 = pd.Series([1,2,3,4,5],index=['a','b','c','d','e'])
arr_0
​
​
# ---------------------------下面是输出结果-----------------------------
a    1
b    2
c    3
d    4
e    5
dtype: int64

 


看下一段代码

# 重置索引不能像下面这样,重置索引是指重置原有索引
print(arr_0.reindex(['f','i','j','k','l']))
# 下面是正确的重置索引
print(arr_0.reindex(['c','b','d','e','a']))
​
​
# ---------------------------下面是输出结果------------------------------
f   NaN
i   NaN
j   NaN
k   NaN
l   NaN
dtype: float64
-------------------------------------
c    3
b    2
d    4
e    5
a    1
dtype: int64

 

 

 

再看下一段代码

print(arr_0)
# 重置索引时多加索引
print(arr_0.reindex(['c','b','d','e','a','f','i']))
# 给这些值为nan的索引进行值的填充
print(arr_0.reindex(['c','b','d','e','a','f','i'],fill_value=8))
​
​
# ----------------------------下面是输出结果------------------------------
a    1
b    2
c    3
d    4
e    5
dtype: int64
--------------------------------------
c    3.0
b    2.0
d    4.0
e    5.0
a    1.0
f    NaN
i    NaN
dtype: float64
--------------------------------------
c    3
b    2
d    4
e    5
a    1
f    8
i    8
dtype: int64

 

 

 

重置索引的最后一段代码

print(arr_0)
# 进行向前填充,参照的是原数组的最后一个元素
print(arr_0.reindex(['c','b','d','e','a','f','i'],method='ffill'))
# 进行向后填充
print(arr_0.reindex(['c','b','d','e','a','f','i'],method='bfill'))
​
​
# --------------------------------下面是输出结果----------------------------------
a    1
b    2
c    3
d    4
e    5
dtype: int64
------------------------------------
c    3
b    2
d    4
e    5
a    1
f    5
i    5
dtype: int64
-------------------------------------
c    3.0
b    2.0
d    4.0
e    5.0
a    1.0
f    NaN
i    NaN
dtype: float64

 

 

从上面可看出,使用reindex时候,要用好里面的参数,method和fill_value等等。重置索引是指将原有的索引重新按位置放,而不是取新的索引名。


 

索引操作

arr_1 = pd.Series([1,2,3,4,5],index=['a','b','c','d','e'])
print(arr_1)
# 对数值用下标进行索引
print(arr_1[2])
# 对数值用索引进行索引
print(arr_1['c'])
# 用位置索引进行切片
print(arr_1[2:4])
# 用索引名进行索引
print(arr_1['c':'d'])
# 通过不连续索引获得数据集
print(arr_1[[1,2,3]])
# 通过索引名来进行不连续索引
arr_1[['b','c','d']]
​
​
# ------------------------------下面是输出结果---------------------------------
a    1
b    2
c    3
d    4
e    5
dtype: int64
----------------------------------------
3
----------------------------------------
3
----------------------------------------
c    3
d    4
dtype: int64
---------------------------------------
c    3
d    4
dtype: int64
---------------------------------------
b    2
c    3
d    4
dtype: int64
---------------------------------------
b    2
c    3
d    4
dtype: int64

 

 

 

创建布尔类型索引对象

# 创建布尔型Series对象
arr_1_bool = arr_1>3
arr_1_bool
# 获取结果为True的数据
arr_1[arr_1_bool]
​
​
# -------------------------下面是输出结果---------------------------
a    False
b    False
c    False
d     True
e     True
dtype: bool
------------------------------
d    4
e    5
dtype: int64

 

 

DataFrame的索引操作

arr_2=np.arange(12).reshape(3,4)
arr_2
# 创建DataFrame对象,并设置
# 列名和索引名。如果不进行设置列名和索引名,默认是从0开始往后递推
arr_3=pd.DataFrame(arr_2,columns=['a','b','c','d'],index=['first','second','third'])
arr_3
# 索引b列
print(arr_3['b'])
# 获取多个不连续的Series对象
print(arr_3[['b','d']])
# 使用切片取0到1行的数据对象
print(arr_3[0:2])
#  先索引0到2行的数据,再通过不连续的列索引获取b,d列的数据
print(arr_3[0:3][['a','b']])
# 获取多列数据(用例名)
print(arr_3.loc[:,['b','a']])
# 获取多列数据的第二种方法(用位置索引)
arr_3.iloc[:,[0,1]]
​
​
# ---------------------------下面是输出结果----------------------------
    a   b   c   d
first   0   1   2   3
second  4   5   6   7
third   8   9   10  11
---------------------------------------
first     1
second    5
third     9
Name: b, dtype: int32
---------------------------------------
        b   d
first   1   3
second  5   7
third   9  11
---------------------------------------
        a  b  c  d
first   0  1  2  3
second  4  5  6  7
--------------------------------------
        a  b
first   0  1
second  4  5
third   8  9
---------------------------------------
        b  a
first   1  0
second  5  4
third   9  8
---------------------------------------
    a   b
first   0   1
second  4   5
third   8   9

 

 
 

 

标签:arr,dtype,reindex,索引,int64,print,操作
From: https://www.cnblogs.com/yaya000/p/17790726.html

相关文章

  • 层次化索引
    先是对Series来说importnumpyasnpimportpandasaspd#两层索引对于Series对象来说,没有columnssum_series=pd.Series([15848,13472,12073.8,7813,7446,6444,15230,8269],index=[['河北省','河北省','河北省','河北省',......
  • 41 mysql 索引和慢查询优化
    MySQL之索引原理与慢查询优化 阅读目录一介绍二索引的原理三索引的数据结构四聚集索引与辅助索引五MySQL索引管理六测试索引七正确使用索引八联合索引与覆盖索引九查询优化神器-explain十慢查询优化的基本步骤十一慢日志管理一介绍为何要......
  • 【模拟题】麒麟操作系统运维高级工程师KYCP(运维)
    【模拟题】麒麟操作系统运维高级工程师KYCP(运维)答题卡[单选题]1.(1分)team链路聚合最多支持几块网卡82.(1分)在安装nginx时,下列软件包不是必须安装的是?httpd3.(1分)使用哪个命令可以查看时间同步的源?chronyc4.(1分)在时间服务器中,下列哪个字段定义允......
  • 数据库基础操作3
    今日内容详细python操作MySQL(重要)MySQL本身就是一款C/S架构,有服务端、有客户端,自身带了有客户端:mysql.exepython这门语言成为了MySQL的客户端(对于一个服务端来说,客户端可以有很多)"""SQL的由来"""操作步骤: 1.先链接MySQL host、port、username、password、charset......
  • 事务,python连接mysql 索引等
    1.python连接MySQLMySQL本身就是一款C/S架构,有服务端、有客户端,自身带了有客户端:mysql.exepython这门语言成为了MySQL的客户端(对于一个服务端来说,客户端可以有很多)"""SQL的由来"""操作步骤:1.先链接MySQLhost、port、username、password、charset、库等......
  • 【C语言】操作符有几种?你真的知道吗?
    ⛩️博主主页:@威化小餅干......
  • CentOS7 设置防火墙操作、开放指定端口操作
    CentOS7设置防火墙操作、开放指定端口操作1,查看防火墙状态:firewall-cmd--statesystemctlstatusfirewalld.service2,开启防火墙:systemctlstartfirewalld.service(注意:开放防火墙后需要重启防火墙:firewall-cmd--reload)3,设置开机自启:systemctlenablefirewalld.servic......
  • 信号量与P、V操作
    对于这类问题,我计算啥的都没问题,就是看图很蒙,偏偏大部分都是看图题,所以就来恶补一下关于这种类型的图片题~1、P和V的各自的含义P操作负责分配资源,没有资源的时候就等着(进入阻塞队列)。V操作负责释放资源,在阻塞队列不为空的时候唤醒某个进程进入临界区2、公用信号量--实现进程间......
  • 麒麟操作系统培训笔记
    麒麟操作系统培训-运维序列系统下载地址https://www.kylinos.cn/操作系统安装(实验环境)1.ios安装不做介绍2.稍后安装操作系统linux->centos864bit一般最小安装/带GUI安装Shell基本功能别名alias命令的效力仅限于该次登录,在注销系统后,这个别名的定义就会消失......
  • MySQL连接字符串的实际操作步骤汇总
    MySQL连接字符串的实际操作步骤汇总MySQL字符串主要向大家描述的是MySQL连接字符串的实际操作步骤汇总,其中包括MySqlConnector/ODBC2.50(MyODBC2.50)连接方式,MySQLConnector/ODBC3.51(MyODBC3.51)连接方式等相关内容的具体描述。一、MySQLConnector/ODBC2.50(MyODB......