Pandas索引方法介绍

该文章使用IPython生成的md文件直接导入

import pandas as pd
T_data
PassengerIdSurvivedPclassNameSexAge
A211Cumings, Mrs. John Bradley (Florence Briggs Th…female38.0
B313Heikkinen, Miss. Lainafemale26.0
C411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.0
D503Allen, Mr. William Henrymale35.0
E603Moran, Mr. JamesmaleNaN
F701McCarthy, Mr. Timothy Jmale54.0
G803Palsson, Master. Gosta Leonardmale2.0
H913Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)female27.0
I1012Nasser, Mrs. Nicholas (Adele Achem)female14.0
#使用[]的方法进行索引
#[]方法对于Data.Frame格式的数据是通过列名进行筛选的,即Data.Frame.columns
T_data.columns
Index([u'PassengerId', u'Survived', u'Pclass', u'Name', u'Sex', u'Age'], dtype='object')
T_data["Name"]
A    Cumings, Mrs. John Bradley (Florence Briggs Th...
B                               Heikkinen, Miss. Laina
C         Futrelle, Mrs. Jacques Heath (Lily May Peel)
D                             Allen, Mr. William Henry
E                                     Moran, Mr. James
F                              McCarthy, Mr. Timothy J
G                       Palsson, Master. Gosta Leonard
H    Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)
I                  Nasser, Mrs. Nicholas (Adele Achem)
Name: Name, dtype: object
#对于多列数据的筛选,可以传入一个包含多个列名的列表
T_data[["Name","Sex"]]
NameSex
ACumings, Mrs. John Bradley (Florence Briggs Th…female
BHeikkinen, Miss. Lainafemale
CFutrelle, Mrs. Jacques Heath (Lily May Peel)female
DAllen, Mr. William Henrymale
EMoran, Mr. Jamesmale
FMcCarthy, Mr. Timothy Jmale
GPalsson, Master. Gosta Leonardmale
HJohnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)female
INasser, Mrs. Nicholas (Adele Achem)female
#同时,我们也可以向[]传入行下标的形式实现行的选择
T_data[0:5]
PassengerIdSurvivedPclassNameSexAge
A211Cumings, Mrs. John Bradley (Florence Briggs Th…female38.0
B313Heikkinen, Miss. Lainafemale26.0
C411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.0
D503Allen, Mr. William Henrymale35.0
E603Moran, Mr. JamesmaleNaN
#所以,如何要通过[]筛选指定的行和列,可以采用如下两种方式
#第一种方式,先选择列,后选择行
T_data[["Name","Sex"]][0:5]
NameSex
ACumings, Mrs. John Bradley (Florence Briggs Th…female
BHeikkinen, Miss. Lainafemale
CFutrelle, Mrs. Jacques Heath (Lily May Peel)female
DAllen, Mr. William Henrymale
EMoran, Mr. Jamesmale
#第二种方式先选择行,后选择列
T_data[0:5][["Name","Sex"]]
NameSex
ACumings, Mrs. John Bradley (Florence Briggs Th…female
BHeikkinen, Miss. Lainafemale
CFutrelle, Mrs. Jacques Heath (Lily May Peel)female
DAllen, Mr. William Henrymale
EMoran, Mr. Jamesmale
#注意到上述两种选择方式中,括号顺序的变化并未影响选择的结果
#这是因为,在[]这种选择方式下,默认的整数索引就是行下标,而字符串索引则是列名
#同样可以这样理解,如果想要通过[]方式选择制定的行和列,那么行的选择只能用行下标,列的选择只能使用字符串类型的列名
#如果你的列名是数字,那么很抱歉,你便无法使用[]方法来筛选你想要的列了,因为[]方法会认为你提供的是行的下标索引
#事实上,采用[]方法实现行的索引时,仍然有一个很不方便的问题,那边是下标索引智能通过序列的形式传入,无法通过传入一个下标列表实现对行的索引
#使用[]方法进行某一列的选择,或者某几行的选择时,有自己的方便之处,但仍然存在很大的局限性,例如无法通过index行的名称实现行的筛选,
#同样,无法通过列的下标实现列的索引,但别担心,有一种或者说是两种方法可以实现行和列的快速选择
#这两种方法将通过下标的索引和通过名称的索引两种索引方式进行划分
#基于下标的索引方法为iloc[,]需要传入两个参数,第一个参数为行的下标,第二个参数为列的下标,
#注意,如果不需要对列进行筛选,可以不传入第二个参数,
#但如果不准备对行筛选,仅筛选列,则需要设置行为全选,即 ":"这种方式
T_data.iloc[0:2,0:2]
PassengerIdSurvived
A21
B31
T_data.iloc[0:2]
PassengerIdSurvivedPclassNameSexAge
A211Cumings, Mrs. John Bradley (Florence Briggs Th…female38.0
B313Heikkinen, Miss. Lainafemale26.0
T_data.iloc[:,0:2]
PassengerIdSurvived
A21
B31
C41
D50
E60
F70
G80
H91
I101
#传入索引的下标列表
T_data.iloc[[1,3],[2,5]]
PclassAge
B326.0
D335.0
#第二种方式与第一种方式对应,是基于行列名称的索引
#注意到,对名称进行切片的时候,最后一项是包含在里面的
T_data.loc["A":"E","Survived":"Name"]
SurvivedPclassName
A11Cumings, Mrs. John Bradley (Florence Briggs Th…
B13Heikkinen, Miss. Laina
C11Futrelle, Mrs. Jacques Heath (Lily May Peel)
D03Allen, Mr. William Henry
E03Moran, Mr. James
T_data.loc["A":"E"]
PassengerIdSurvivedPclassNameSexAge
A211Cumings, Mrs. John Bradley (Florence Briggs Th…female38.0
B313Heikkinen, Miss. Lainafemale26.0
C411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.0
D503Allen, Mr. William Henrymale35.0
E603Moran, Mr. JamesmaleNaN
T_data.loc[:,"Survived":"Name"]
SurvivedPclassName
A11Cumings, Mrs. John Bradley (Florence Briggs Th…
B13Heikkinen, Miss. Laina
C11Futrelle, Mrs. Jacques Heath (Lily May Peel)
D03Allen, Mr. William Henry
E03Moran, Mr. James
F01McCarthy, Mr. Timothy J
G03Palsson, Master. Gosta Leonard
H13Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)
I12Nasser, Mrs. Nicholas (Adele Achem)
T_data.loc[["A","C","F"],["Survived","Age"]]
SurvivedAge
A138.0
C135.0
F054.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值