本文主要是介绍pandas 选择数据与条件筛选iloc/loc/filt,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
列选择
-
选择一列
df['lable_title']
-
选择多列
df[['lable1','lable2']]
[ 重要事项 ]:注意选择多个列时,多个label要用
[]
框起来。
DataFrame类似于一个二维数组,而二维数组的每一列可以看成一个一维数组,该一维数组在pandas中被称作Series。即DataFrame为一个二维数组,由一列一列的一维数组Series组成。
使用df[‘label’]是从一个dataframe中选择返回的是一个Series,如果选择多行多列那么返回的就是一个dataframe。
选择出一个dataframe
使用iloc(i代表integer整数,是只能用整数来选择行和列)
df.iloc[[1,3],0:7:2]# 选择第1、3行,并选择第1列到第7列,步长为2.
[TIPS]:
- 最外层
[ ]
内部逗号前的表示要选择的行,逗号后的表示要选择的列。 - 分散的选择,如选择第一行与第三行,要用
[ ]
框起来 - 而切片式子却不能框
- iloc切片时不包含右端
- 注意所有的选择都是用
[ ]
,而不是( )
,尽管iloc长的像一个函数。
使用loc(可以使用列lable来选择列)
df.loc[[0,3],['name','age']]#选择第0 3行,并选择name lable列.
- 行和列都要用
[ ]
包起来 - 可以使用list的切片,例如
'name':'age'
选择从name列到age列 - loc切片时包含两端
利用bool值进行筛选
- 筛选条件
filt=(df["age"]>==35 )&( condition2) | (condition3) # 对age列中每一个元素进行判定,值为真返回TRUE,反之为FALSE
df.iloc(-filt) # - 进行反选
filt_list=[1,2,3]
df['age'].isin(filt_list)
这是多个或(|)的一种简便写法filt = df['age'] = 1 | df['age'] = 2 | df['age'] = 3
[TIPS] :
使用字符串方法也可以写作filter,比如要筛选内容中含有python的filt=df['skills'].str.contain('python')
这篇关于pandas 选择数据与条件筛选iloc/loc/filt的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!