1、在索引切片的时候,可以按照下式子进行:
df[:3] df['a':'c'] df[[True,True,True,False,False,False]] # 前三行(布尔数组长度等于行数) df[df['A']>0] # A列值大于0的行 df[(df['A']>0) | (df['B']>0)] # A列值大于0,或者B列大于0的行 df[(df['A']>0) & (df['C']>0)] # A列值大于0,并且C列大于0的行
/*此处的&为‘并且’,并且最好要把‘&’两边的表达式用()标记起来,否则容易出现逻辑错误如下:
0 < 1 & 0 < 2 -----------------> 0 < (1 & 0) < 2
*/
2、在对dateframe进行索引处理的时候要注意,尽量使用pd.notna()函数进行判定是否为空。(而不是单纯的用'null'或者np.nan)
/*np=numpy pd=pandas*/
3、在对dataframe获取单独一列或者一行的时候要注意。获取一行的方法通常是frame.ix['array_name']而列则是frame['column_name']。
如果是对进行加减乘除(add,sub,mul,div)的广播则要可以通过axis属性进行设置详细见P136.
5、关于groupby的Note:
dataframe数据类型的groupby函数主要是将相同的类型进行统一。
df.groupby('columnname')--->可按照该列对象进行分组,并且可以将该对象再进一步进行索引分析df.groupby('columnname')['columnname1']
df['columename'].groupby(df['columnname1'])-->索引效果等价于df.groupby('columnname')['columnname1']。但是此时要主要需要在groupby中引入df['columnname'],因为有时候在分析数据的时候可以groupby的对象来自不同的表格。
groupby对元素的行或者列进行合并--->建立一个基于将要合并列/行的字典mapping,然后将df.groupby(mapping,axis=?)若对列进行合组则?设置为1,行则为0
6、note:关于切片标签化,对于数组集合使用cut函数进行划分,传入带切分的数据集与切分的数据断点值。修改属性标签里面right的bool值可以修改数据的包含性质。通过传入labels属性可以修改数据的切片的别名。