pandas学习笔记(三):行列选择以及数据插入删除

  • Post author:
  • Post category:其他




行列选择

以如下数据为例:

import pandas as pd
df = pd.DataFrame({'A':[1,2,3,7,8,9],'B':[4,5,6,8,9,5],'C':[7,8,10,3,7,7]},index=['a','b','c','d','e','f'])

在这里插入图片描述

目前已掌握三种行列筛选的方法:iloc()、loc()、ix()。其共同点是:


1、用[,]表示筛选范围,逗号前为行的选择,逗号后为列的选择。

#筛选A/B两列的前五行
print('--------------------------------------iloc方法---------------------------------------------------')
#iloc方法
print(df.iloc[:5,[0,1]])
print('-------------------------------------loc方法----------------------------------------------------')
#loc方法
print(df.loc[['a','b','c','d','e'],['A','B']])
print('-------------------------------------ix方法----------------------------------------------------')
#ix方法
print(df.ix[:5,['A','B']])


2、只筛选行,可以不使用逗号。

#筛选前五行
print('--------------------------------------iloc方法---------------------------------------------------')
#iloc方法
print(df.iloc[:5])
print('-------------------------------------loc方法----------------------------------------------------')
#loc方法
print(df.loc[['a','b','c','d','e']])
print('-------------------------------------ix方法----------------------------------------------------')
#ix方法
print(df.ix[:5])


3、只筛选列,需在逗号前用冒号表示。

#筛选A/B两列
print('--------------------------------------iloc方法---------------------------------------------------')
#iloc方法
print(df.iloc[:,[0,1]])
print('-------------------------------------loc方法----------------------------------------------------')
#loc方法
print(df.loc[:,['A','B']])
print('-------------------------------------ix方法----------------------------------------------------')
#ix方法
print(df.ix[:,['A','B']])


4、连续取值可以用[n:m]表示,n表示首行(列),m表示尾行(列),含义为取n行(列)到m行(列)。

#筛选1-4行以及1-2列
print('--------------------------------------iloc方法---------------------------------------------------')
#iloc方法
print(df.iloc[:4,:2])
print('-------------------------------------loc方法----------------------------------------------------')
#loc方法
print(df.loc['a':'d',['A','B']])
print('-------------------------------------ix方法----------------------------------------------------')
#ix方法
print(df.ix[:4,['A','B']])


5、非连续取值可以使用[n,m]表示,即取出n行(列)和m行(列)。

#筛选第1行和第4行的A列数据
print('--------------------------------------iloc方法---------------------------------------------------')
#iloc方法
print(df.iloc[[0,3],0])
print('-------------------------------------loc方法----------------------------------------------------')
#loc方法
print(df.loc[['a','d'],'A'])
print('-------------------------------------ix方法----------------------------------------------------')
#ix方法
print(df.ix[[0,3],'A'])

其区别在于:


loc函数


loc()函数是基于标签的数据选择方法,这意味着我们必须传递我们想要选择的

行或列的名称

。与iloc()不同的是,这个方法包括了它所传递的范围的最后一个元素。loc()可以接受布尔数据,与iloc()不同。

#筛选出A列大于5的B/C列数据
df.loc[df['A']>5,['B','C']]

在这里插入图片描述


iloc()函数


iloc()函数是一个基于索引的选择方法,这意味着我们必须在该方法中传递一个

整数索引

来选择一个特定的行/列。与loc()不同的是,该方法不包括所传递范围的最后一个元素。iloc()不接受布尔数据,与loc()不同。


ix()函数


该方法接受索引和行列名称来选择特定的行列

以下是筛选出符合条件的n列n列的几个示例

(1)取出符合条件的数据all行列

df[df["age"]==12]

(2)取出符合条件的数据的指定列

df[df["age"]==12][["age","name"]]

(3)取出符合多个条件的数据

df[(df["age"]>12)|(df["name"]=="a")]


注意事项:==表示等于,&表示并且,|表示或者,单个条件需要()括起来



插入数据

(一)插入列

(1)insert方法

df.insert(loc, column, value, allow_duplicates=False)

loc 插入位置

column 待插入的列名

value 待插入的数据

allow_duplicates 是否允许重复列名,True表示待插入的列名可以与已存在列名重复

df.insert(1,'k',[1,2,3,3,5,6,7,8,9,10],allow_duplicates=True)

(2)直接以索引的方式插入最后一列

df['m']=[1,2,3,4,5,6,7,8,9,10]

(二)插入行

(1)直接以索引的方式插入最后一列

df.loc['k'] = [5.5, 'dog', 'no', 2]



删除数据

drop方法

df.drop(labels, axis=0, level=None, inplace=False, errors=‘raise’)

axis 默认删除行,axis=1删除列,axis=0删除行

(一)删除行

(1)指定列名

df=df.drop(["k","m"],axis=1)
del df['k']

(2)指定索引

df=df.drop(columns=[1,2],axis=1)

(二)删除行

(1)指定行名

df=df.drop(["k"],axis=0)

(2)指定索引

df=df.drop(df.index[[1,2]],axis=0)



版权声明:本文为weixin_44100044原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。