1.loc函数、iloc函数

loc函数:通过行索引 “Index” 中的具体值来取行数据(如取"Index""A"的行)

iloc函数:通过行号来取行数据(如取第二行的数据)
df = pd.DataFrame(np.arange(20).reshape(5,4),index=list('abcde'),columns=['A', 'B', 'C', 'D'])
######### 提取行数据############
#取索引为'a'的行
df.loc['a']
# 输出:
A    0
B    1
C    2
D    3

#取第二行数据,索引为'a'的行就是第一行,所以结果相同
df.iloc[1]
# 输出:
A    4
B    5
C    6
D    7
######### 提取列数据############
#取AB列的数据
df.loc[:,['A','B']] 
# 输出:

    A	B
a	0	1
b	4	5
c	8	9
d	12	13
e	16	17

#取第0,1列的数据
df.iloc[:,[0,1]] 
# 输出:

    A	B
a	0	1
b	4	5
c	8	9
d	12	13
e	16	17

######### 提取指定行、指定列数据############
#提取index为'c','d',列名为'A','B'中的数据
df.loc[['c','d'],['A','B']] 

# 输出:
	A	B
c	8	9
d	12	13

#提取第02行,第01列中的数据
df.iloc[[0,2],[0,1]]

# 输出:
	A	B
a	0	1
c	8	9

######### 提取所有数据############
#取所有列的数据
df.loc[:,:] 

# 输出:
	A	B	C	D
a	0	1	2	3
b	4	5	6	7
c	8	9	10	11
d	12	13	14	15
e	16	17	18	19

#取所有行数据
df.iloc[:,:] 
# 输出:
	A	B	C	D
a	0	1	2	3
b	4	5	6	7
c	8	9	10	11
d	12	13	14	15
e	16	17	18	19

2.drop()函数的用法

'''
drop()函数的用法:
DataFrame.drop(labels=None,axis=0, index=None, columns=None, inplace=False)

labels:就是要删除的行列的名字,用列表给定
axis:默认为 0,指删除行,因此删除 columns 时要指定 axis=1;
index:直接指定要删除的行
columns:直接指定要删除的列
inplace=False : 默认该删除操作不改变原数据,而是返回一个执行删除操作后的 新 dataframe;
inplace=True : 则会直接在原数据上进行删除操作,删除后无法返回。

'''
df = pd.DataFrame(np.arange(20).reshape(5,4), columns=['A', 'B', 'C', 'D'])
# 删除B,C两列
# 方法一:
df.drop(['B', 'C'], axis=1) #一定要指定axis=1,否则会报错,因为drop默认是删除行数据的
# 方法二:
df.drop(columns=['B', 'C'])

# 删除B,C两列输出结果:
	A	D
0	0	3
1	4	7
2	8	11
3	12	15
4	16	19

# 删除索引值为13的行数据
df.drop(index=[1, 3])

# 输出结果:
	A	B	C	D
0	0	1	2	3
2	8	9	10	11
4	16	17	18	19


drop()函数删除指定的行,按照某列的值对df数据行的索引进行筛选并删除
例如:剔除3分的中性评论

// An highlighted block
df[df['score'] == 3] # 找到score这一列中值为3的所有行数据
写法1:
df = df.drop(df[df['Score']==3].index)
写法2:
df=df[df['Score']!=3]

一个表中含有很多的列,我想要删除其中指定的几列’Id’, ‘ProductId’, 'UserId’

df = df.drop(['Id', 'ProductId', 'UserId'],axis=1)
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐