Pandas学习随笔(3) Selecting的复习

前言

Selecting的部分真是用的最多的地方,所以也是最最熟悉的部分,这里不加赘述过于基础的东西,会快速的略过那些部分,但是会把一些不常用的东西、新奇的东西罗列出来。


基础:

  1. df.loc, df.iloc, df.ix
  2. df[int], df[int,int], df[:,:,int]
  3. df[df.col > 0], df[() & ()], df[() | ()]
  4. df[df.col.isin([1,2,3,4])]

不常用的:

  1. df.loc[lambda x: x.col >0,:]
  2. df.reindex() # 可通过给一个新的(可大于现有长度)的index,生成NaN的行( 那岂不是会乱序,碎碎念,要不就只能在最后加NaN)
  3. df.set_index(col) # 可直接将某列/多列 设为index
  4. df.sample() # 随机抽样,可用size也可用frac,还可赋予权重
  5. df[df['col'].map(lambda x: x.startswith('t') # 用map来更灵活的生成布尔值
  6. df.where(df > 0) # 等同于 df[df >0] ,而且可用args对False的值进行替换
  7. df.mask(df > 0) # 等同于 df.where(df <= 0), 与上者是相反的布尔操作
  8. df.query('(a < b) & (b < c)') # 类似于建立了一个df内部的SQL语言,abc都是列名,等价于df[(df.a < df.b) & (df.b < df.c)] (实验性,不深入研究)
  9. df.lookup([1,2,3],['a','b','c']) # 等价于 df.loc[1,'a'], df.loc[2,'b'], df.loc[3,'c'] ,传入两个等长的list,可以自动进行zip且索引。

关于df.where

用法较多,这里简单讲一讲
基本的用法:
df.where(df>0),但是同样可以是用df.where(df < 0 , -df),相当于把整个表格都转换成了负数
或者df3.where(lambda x: x > 4, lambda x: x + 10)对其进行操作,只对大于4的数字加10.
而且也会自动进行比对(alignment)。
例如df2[ df2[1:4] > 0 ] = 3 只会操作df2的1->4 行。

你可能感兴趣的:(Pandas学习随笔(3) Selecting的复习)