Pandas索引

Pandas索引的基础知识自我补充
Pandas索引_第1张图片

可变序列与不可变序列:
Pandas索引_第2张图片
复制列表和指向
Pandas索引_第3张图片

索引器

一.列索引

注:其中 x为多种类型的不同代称,我在手机端编辑,这边没有数据集为了方便统一写成了 x

列索引是最常见的索引方式,一般通过 [ ]来实现,通过 [列名] 可以从DataFrame中取出相应的列,返回值为Series

df.= pd.read_csv(“data数据存储在你电脑的位置”, usecols = [“School”,”Grade”,”Name”,”Gende”,”weight”,”Transter”])

)

df[“Name”].head()

   Name               

0 x

1 x

2 x

3 x

4 x

#如果要取出多个列表,则可以通过[列名组成的列表],其返回值为DataFrame,从列表中选取性别和姓名俩列:

df.= pd.read_csv(“data数据存储在你电脑的位置”)

usecols =( [“School”,”Grade”,”Name”,”Gende”,”weight”,”Transter”])

df[[“Grande”,”Name”]].head()

  Grande                 Name

0 x x

1 x x

2 x x

3 x x

4 x x

#此外,若要取出单列,且列名中不包含空格,则可以用列名取出,这和[列名]是等价的:

df.Name.head()

  Name               

0 x

1 x

2 x

3 x

4 x

二.行索引

以字符串为索引的Series

如果取出单个索引的对应元素。则可以使用[item],若Series只有单个值对应,则返回这个标量值。

                                                                            如果有多个值对应,则返回一个Series:

s = pd.Series([1,2,3,4,5,6],index = [“a”,”b”,”a”,”a”,”a”,”c”])

s[“a”]

a 1

a 3

a 4

a 5

s[‘b”]

b 2

#如果取出多个索引的对应元素,则可以使用[item列表]

s[[“c”,”b”]]

C 6

b 2

#如果像要取出某俩个索引中间的元素,平且这俩个索引是在整个索引中惟一出现,则可以使用切片,同时需要注意的,这里的切片包含俩个端点:

s[“c”:”b”:-2]

c 6

a 4

b 2

#以整数为索引的Series

在使用函数读入数据时,如果不特别指定所对应列作为索引,那么会生成从0开始的整数索引,默认为初始索引

特别的:任意一组符合长度要求的整数都可以作为索引

则 使用[int] or[ int_list],可以取出对应索引元素的值

s = pd.Series([“a”,”b”,”c”,”d”,”e”,”f”],index = [1,3,1,2,4,5])

s[1]

1 a

1 c

s [[2,3]]

2 d

3 b

三.关于loc索引器

1 基于元素的loc索引器

2 基于位置的索引器

loc[ ]中的合法对象共有五类:1)单个元素;元素列表;元素切片;布尔列表以及函数

利用set_list将“Name”作为列的显示

df.= pd.read_csv(“data数据存储在你电脑的位置”, usecols = [“School”,”Grade”,”Name”,”Gende”,”weight”,”Transter”])

)

df_demo = df.set_index(“name”)

df_demo,head()

Name school Grade Gender weight Transfer

X x x x x x

X x x x x x

X x x x x x

X x x x x x

X x x x x x

备注:其中 x为多种类型的不同代称,我在手机端编辑,这边没有数据集为了方便统一写成了 x

单个元素

直接取出相应的行或列,如果该元素在索引中重复则结果为DataFrame,否则为 series

df_demo.loc[“Qing Sun”] #在data中多个人叫此名,重复则结果返回为DataFrame

Name school Grade Gender weight Transfer

X S z x p x

X O z x x x

X z y x b x

df_demo.loc[“Quan Zhao”] #在data中,名字唯一

school X

Grade Y

Gender U

Weight G

Transfer B

切片时

如果DataFrame使用整数索引,其使用整数切片的时候和上面字符串索引的要求一致,都是元素切片,包含端点且起点,终点不允许有重复值,如果不唯一则报错

df_demo.loc[“x”:”z”,”y”:”d”]

Name y d

x xxxx x

z iiii hh

p s nm

o v bv

知识点补充:DataFrame 和Series的区别

DataFrame:

二维数据,整个表格 ,有多行有多列

df.Index索引列

df.columns索引行

在pandas中查询数据就是对 df.columns查询列,对df.index查询行

Series:一纬数据,一行或一列

     每一列都是Series对象,每一行都是Series对象

DataFrame和Series搭配使用

   **如果在一个表格中查处了数据仍是区块,查询出来的结果仍然是DataFrame,但是如果查出的是一行或一列的话,他的结构对象就变成了Series。
                                                   因为对一纬数据,类似于python中的字典,处理起来会比二维数组Dataframe更加快捷,所以在pandas中就俩个数据结构DataFrame和Series*

练习题 员工数据集

Pandas索引_第4张图片

Pandas索引_第5张图片
Pandas索引_第6张图片练习2,巧克力数据集
难搞。。。。。

你可能感兴趣的:(pandas,索引,python)