Pandas基础之常见的坑

2019-06-24  本文已影响0人  惑也

坑点集

常用集

  1. 默认分成等距离区间,通过bins参数可以自定义区间列表
  2. 通过labels 参数可以为每个区间起名字
  3. 特别地,labels=False时,不是区间段,而是分类的序号
  4. 结果区间列是分类变量(Categories),操作时需留意,是否要转化为object
  5. 该函数通常配合groupby()函数使用,进行区间分组
  6. 默认区间段的范围是左开右闭,right参数可以设置区间的开闭
  7. 通过设置include_lowest = False,可以使第一个区间包含左端点
  1. 默认会对组键进行排序,当数据量较大时,会影响性能和速度,通过设置sort=False可以不排序;
  2. 当对多个字段进行分组时,会自动生成多级索引,若不需要输出多级索引,通过设置as_index=False可以避免多级索引;
  3. size()函数计数时包含NaN值,而count()不包含NaN值,最常用的场景就是计算列的缺失率;
  4. 统计不同值计数时,使用nunique()函数来实现;
  5. 当需要对df的index和column同时分组时,列表中用df.index表示索引、列名称表示列;
  6. Python函数在定义分组映射关系时,更有创意且更为抽象,任何被当做分组键的函数,都会在各个索引值上被调用一次,其返回值被用作分组名称。如示例中,对索引的字符串长度和A列,一起分组
df = pd.DataFrame({
    "A": ["yes", "no", "no", "yes", "yes"],
    "B": [0, 1, 2, 0, 2],
    "C": [10, 29, 100, 22, 11]},
    index = ["shi", "tou", "shimei", "mei", "doudou"])

df
         A  B   C
shi     yes 0   10
tou     no  1   29
shimei  no  2   100
mei   yes   0   22
doudou  yes 2   11

# 对索引的字符串长度和A列,一起分组
df.groupby([len, "A"]).sum()
        B   C
    A       
3   no  1   29
    yes 0   32
6   no  2   100
    yes 2   11
  1. 特别说明:groupby时,会自动过滤掉分组字段中为空的数据
df['A'] = df['A'].apply(lambda x: format(x, ','))
df['A'] = df['A'].apply(lambda x: float(''.join(x.split(','))))
pd.set_option('display.float_format', lambda x: '{:,.4f}'.format(x))
上一篇下一篇

猜你喜欢

热点阅读