蓝绝

博客园 首页 新随笔 联系 订阅 管理

2) DataFrame的索引

(1)对列进行索引

-通过类似字典的方式

-通过属性的方式

可以将DataFrame的列获取为一个Series。返回的Series拥有原DataFrame相同的索引,且name属性也已经设置好了,就是相应的列名。

 

(2)对行进行索引

-使用.ix[]来进行行索引使用.loc []加index来进行行索引

-使用.iloc[]加整数来进行行索引同样返回一个Series, index为原来的columns。

 

(3)对元素索引的方法

使用列索引使用行索引(iloc[3,1]相当于两个参数:iloc[[3,3]]里面的[3,3]看做一个参数)

使用values属性(二维numpy数组)

 

切片

【注意】直接用中括号时:
.
索引表示的是列索引

切片表示的是行切片

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

#(1)对列进行索引

#数据分析三剑客
import numpy as np 
import pandas as pd 
from pandas import Series, DataFrame 
import matplotlib as mpl
df = DataFrame (data=np.random.randint (0, 100, size=(3, 5)), columns=list ("ABCDE")) 
df

 

#字典访问
df["A"]
0    94
1    74
2    25
Name: A, dtype: int32
#使用标签列表方式访问
df[["A","B"]]

 

 

 

#属性访问
df.A
0    94
1    74
2    25
Name: A, dtype: int32

#(2)对行进行索引

df1 = DataFrame (data=np.random.randint (0, 100, size=(3, 5)),index=list("abc"), columns=list ("ABCDE")) 
df1

 

 

 

#df["A"]是访问行的方式,访问列必须要.loc。否则会报错
df1.loc[["a","b"]]

#隐式索引访问
df.iloc[[0]]

 

#(3)对元素索引的方法

#元素访问的逻辑和numpy的访问逻辑一致(先行后列)(官方推荐访问方式)

#访问行为a,列为B的值
df1.loc["a","B"]

#运行输出 90

#使用隐式索引访问
df.iloc[0,1]

#运行输出 91

 

 

 

 切片

【注意】直接用中括号时:
.索引表示的是列索引

切片表示的是行切片

#行切片
df1.loc["a":"b"]

 

#列切片,逻辑和二维数组一样,先行后列
df1.loc[:,"A":"B"]

 

posted on 2022-11-17 15:08  蓝绝  阅读(1033)  评论(0)    收藏  举报