数据计算和统计基础
mean()
默认参数axis=0,表示为列。与apply参数相反
也可设置skipna=False,默认为True,跳过空值
count(),min(), sum(), median(),
quantile(q=0.75) 统计分位数
std(), var(), skew(), kurt() 标准差,方差,偏度,峰度
cumsum(), cumprod(), cummax(), cummin() 累计和,差,最大值,最小值
唯一值:Series.unique()
值计数:Series.value_count(sort=Flase) 参数默认True
成员资格:isin()
文本数据
通过str访问,自动排除/NA值
s.str.count()
df['key1'].str.upper() # df no attribute 'str'
df.coulumns.str.upper()
字符串常用方法:针对series每个元素操作
1、lower, upper, len, startswith, endswith
2、strip(), replace(, n=1)#n替换个数, split() 参数expand和n,
3、字符串索引,取每个字符的前n个,eg:'abcd'-->str[:2] --> 'ab'
合并merge, join
pd.merge(left, right, how='inner', on=None,
left_on=None, right_on=None,
left_index=False, right_index=False,
sort=True, suffixes=('_x', '_y'), copy=True, indicator=False)
how参数: inner, outer, left, right
sort:像字典,会对第一列排序。默认为False,设置为False会大幅提高性能
另一种sort: 也可以调用sort_index(), sort_values()方法。
pd.join() --> 直接通过索引链接
参数on: 也可以设置关键字
连接与修补 concat、combine_first
连接 - 沿轴执行连接操作
pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
keys=None, levels=None, names=None, verify_integrity=False,
copy=True)
参数axis:0表示行相加,1表示列相加
参数join: outer、inner
参数join_axes: 指定联合的index
参数keys:axis为0时变为multiIndex,1时覆盖列名
修补 pd.combine_first()
df1.combine_first(df2)
根据index, df1空值被df2替换
如果df2的index多于df1,则更新到df1上
覆盖 df1.update(df2) 按照index覆盖
去重及替换
去重 .duplicated() .drop_duplicates() Series和df都可以直接使用
替换 .replace() Sr和df都可以直接用(Sr.str可以替换单个字符'bab'中的'a')
数据分组 groupby
df.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs)
参数level:唯一索引用level=0,将相同index分为一组
#分组 - 可迭代对象
list(df.groupby('X'))
#提取分组后的组
df.groupby('X').get_group('A')
df.groupby('X').size() # 查看分组长度
#axis=1 即列分组,将按照值类型分组
#通过字典或者Series作为分组依据
#通过函数分组,df.groupby(len).sun()
#分组计算函数方法
first, last # 非NaN第一个,最后一个
sum, mean, median, count, min, std, prod #prod为积
#多函数计算:agg()
#分组后应用函数,再转为df
df.groupby('X').apply().reset_index()
拆分-应用-合并 transform/apply
# .add_prefix('mean_'):添加前缀
transform 即使groupby,也还是对每个计算并分开显示
apply
df.groupby().apply(lambda x: x.describe())
df.groupby().apply(demo, x) #传递给demo函数参数x
透视表及交叉表 df.pivot_table(), df.crosstabl()
数据读取 read_table(), read_excel(), read_csv()