欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于pandas的数据处理tips

程序员文章站 2024-01-19 14:54:52
...

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属性可以修改数据的切片的别名。