以titanic的训练数据为例进行展示,为了简化取前十行为例
首先导入模块,导入数据
import pandas as pd import numpy as npdf = pd.read_csv(r"C:\Users\admin\Desktop\train.csv")df = df.head(10)df.index=['a','b','c','d','e','f','g','h','i','g']
筛选单列
1.利用df[列名]或df[[列名]]或df.列名均可以筛选出单列,但稍微有点区别,df[列名]和df.列名均为Series类型,而df[[列名]]为DataFrame类型
#例如选取Age列,注意写成df[]形式时,列名需要加单引号或双引号df.Agedf['Age']df[['Age']]
2.loc[行索引,列索引],索引为普通索引,传入行索引名称和列索引名称,筛选列时,行索引可以写成":"
#删选单列时,列索引名称可以加[]也可以不加,不加时返回为Series,加时返回为DataFramedf.loc[:,'Age']df.loc[:,['Age']]
3.iloc[行索引,列索引],索引为位置索引,传入行数和列数,筛选列时,行索引可以写成":"
df.iloc[:,1]df.iloc[:,[1]]
筛选多列
1.利用df[[列名1,列名2,列名n]]可以筛选出多列,返回结果为DataFrame类型,例如筛选年龄列和姓名列
df[['Name','Age']]
2.loc[行索引,列索引],索引为普通索引,传入行索引名称和列索引名称,筛选列时,行索引可以写成":",如果筛选列不连续需要写成列表形式,如果列连续可以写成切片形式
df.loc[:,['Name','Age']]df.loc[:,'Name':'Age']
3.iloc[行索引,列索引],索引为位置索引,传入行数和列数,筛选列时,行索引可以写成":",如果筛选列不连续需要写成列表形式,如果列连续可以写成切片形式
df.iloc[:,[3,4,5,6]]df.iloc[:,3:6]