pandas筛选与排序

pandas筛选排序

处理csv文件必备

常见筛选

注:df为已读取的csv文件
文中df后跟的字段名称多为列名字
(1)简单直接筛选
A列大于0

df[df['A']>0]
df.iloc[:3,:][df.ON_LINE_NUM<100]
df[df['Gender']=='F']

(2)isin方法
E列中值为two和four的

df2[df2['E'].isin(['two', 'four'])]

(3)布尔符号:’&’, ‘|’, ‘~’:分别代表和and,或or,取反not

df[(df['Gender']=='F')&(df['Address']=='street_2')]
df[(df['Math']>85)|(df['Address']=='street_7')]
df[~((df['Math']>75)|(df['Address']=='street_1'))]

最后一个意思为 排除math>75和street_1
(4)按横向标题排序

f.sort_index(axis=1, ascending=False)

按值排序,某一列,缺失值都排在最后

 df.sort_values(by=['ON_LINE_NUM','GRANT_CARD_CODE'])`

按列值排序
(5)选取一个元素,at和iat

df.at[1101,'School']
df.loc[1101,'School']
df.iat[1,2]#第一行第二列的元素
df.iloc[1,2]#第一行第二列的元素

where函数,mask函数,query函数 筛选

(6)where函数

df.where(df['Gender']=='M')

#不满足条件性别为M的行全部被设置为NaN

df.where(df['Gender']=='M').dropna()`#删掉缺失值

第一个参数为布尔条件,第二个参数为填充值:

df.where(df['Gender']=='M',np.random.rand(df.shape[0],df.shape[1]))

性别不为M的行填充。。
(7)mask函数
mask函数与where功能上相反,其余完全一致,即对条件为True的单元进行填充

df.mask(df['Gender']=='M').dropna()`      

删除性别为M的行
(8)query函数
query函数中的布尔表达式中,下面的符号都是合法的:行列索引名、字符串、and/not/or/&/|/~/not in/in/==/!=、四则运算符

df.query('(Address in ["street_6","street_7"])&(Weight>(70+10))&(ID in [1303,2304,2402])')

住址在6,7街,并且体重大于80并且ID为[1303,2304,2402]中的一个

你可能感兴趣的:(pandas筛选与排序)