loc函数、iloc函数、df.drop()函数的用法

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)
  • 12
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值