1. 数据筛选
a b c
0 0 2 4
1 6 8 10
2 12 14 16
3 18 20 22
4 24 26 28
5 30 32 34
6 36 38 40
7 42 44 46
8 48 50 52
9 54 56 58
(1)单条件筛选
df[df['a']>30]
# 如果想筛选a列的取值大于30的记录,但是之显示满足条件的b,c列的值可以这么写
df[['b','c']][df['a']>30]
# 使用isin函数根据特定值筛选记录。筛选a值等于30或者54的记录
df[df.a.isin([30, 54])]
(2)多条件筛选
可以使用&(并)与| (或)操作符或者特定的函数实现多条件筛选
# 使用&筛选a列的取值大于30,b列的取值大于40的记录
df[(df['a'] > 30) & (df['b'] > 40)]
(3)索引筛选
a. 切片操作
df[行索引,列索引]或df[[列名1,列名2]]
'''
遇到问题没人解答?小编创建一个Python学习交流qq群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
#使用切片操作选择特定的行
df[1:4]
#传入列名选择特定的列
df[['a','c']]
b. loc函数
当每列已有column name时,用 df [ ‘a’ ] 就能选取出一整列数据。如果你知道column names 和index,且两者都很好输入,可以选择 .loc同时进行行列选择。
'''
遇到问题没人解答?小编创建一个Python学习交流qq群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
In [28]: df.loc[0,'c']
Out[28]: 4
In [29]: df.loc[1:4,['a','c']]
Out[29]:
a c
1 6 10
2 12 16
3 18 22
4 24 28
In [30]: df.loc[[1,3,5],['a','c']]
Out[30]:
a c
1 6 10
3 18 22
5 30 34
c. iloc函数
如果column name太长,输入不方便,或者index是一列时间序列,更不好输入,那就可以选择 .iloc了,该方法接受列名的index,iloc 使得我们可以对column使用slice(切片)的方法对数据进行选取。这边的 i 我觉得代表index,比较好记点。
'''
遇到问题没人解答?小编创建一个Python学习交流qq群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
In [35]: df.iloc[0,2]
Out[35]: 4
In [34]: df.iloc[1:4,[0,2]]
Out[34]:
a c
1 6 10
2 12 16
3 18 22
In [36]: df.iloc[[1,3,5],[0,2]]
Out[36]:
a c
1 6 10
3 18 22
5 30 34
In [38]: df.iloc[[1,3,5],0:2]
Out[38]:
a b
1 6 8
3 18 20
5 30 32
d. ix函数
ix的功能更加强大,参数既可以是索引,也可以是名称,相当于,loc和iloc的合体。需要注意的是在使用的时候需要统一,在行选择时同时出现索引和名称, 同样在同行选择时同时出现索引和名称。
df.ix[1:3,['a','b']]
Out[41]:
a b
1 6 8
2 12 14
3 18 20
In [42]: df.ix[[1,3,5],['a','b']]
Out[42]:
a b
1 6 8
3 18 20
5 30 32
In [45]: df.ix[[1,3,5],[0,2]]
Out[45]:
a c
1 6 10
3 18 22
5 30 34
e. at函数
最后
🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。
🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!