持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第8天,点击查看活动详情
总计:今天是十月更文计划第八天,第十三篇
这篇继续上一篇的pandas实战:
对
print('每个员工不同时段的交易额'.ljust(30,'=')) #按照多个参数分组
print(df.groupby(by=['姓名','时段'])['交易额'].sum())
# 对不同的列可以采用不同的函数
print('时段和交易额采用不同的聚合方式'.ljust(30,'=')) #按照“姓名”分组,按照“时段”和“交易额”进行聚合,
print(df.groupby(by=['姓名'])['时段', '交易额'].aggregate({'交易额':np.sum, '时段':lambda x:'各时段累计'})) #对于“交易额”采用“求和”,对于“时段”采用lambda表达式
# 使用DataFrame结构的agg()方法对指定列进行聚合
print('使用agg()方法对交易额进行聚合'.ljust(30,'='))
print(df.agg({'交易额':['sum','mean','min','max','median'], '日期':['min','max']}))
print('对分组结果进行聚合'.ljust(30,'='))
print(df.groupby(by='姓名').agg(['max','min','mean','median']))
print('查看分组聚合后的部分结果'.ljust(30,'='))
print(df.groupby(by='姓名').agg(['max','min', 'mean','median'])['交易额'])
处理超市交易数据中的异常值、缺失值、重复值
1、异常值是指严重超出正常范围的数值,这样的数据一般是数据采集错误或类似原因引起的。
在数据分析时,需要把这些数据删除或替换为特定的值(例如人为设定的正常范围边界值),减小对最终数据分析结果的影响。
异常值处理的关键是根据实际情况准确定义正常范围边界值,超出正常范围的数值认为是异常值。
2、缺失值
(1)丢弃缺失值 dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
参数axis指定方向
参数how='any'时表示只要某行包含缺失值就丢弃,how='all'时表示某行全部为缺失值才丢弃;
参数thresh用来指定保留包含几个非缺失值数据的行;
参数subset用来指定在判断缺失值时只考虑哪些列。
(2)填充缺失值
fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)
参数value用来指定要替换的值,可以是标量、字典、Series或DataFrame;
参数method用来指定填充缺失值的方式,值为'pad'或'ffill'时表示使用扫描过程中遇到的最后一个有效值一直填充到下一个有效值,值为'backfill'或'bfill'时表示使用缺失值之后遇到的第一个有效值填充前面遇到的所有连续缺失值;
参数limit用来指定设置了参数method时最多填充多少个连续的缺失值;
参数inplace=True时表示原地替换,inplace=False时返回一个新的DataFrame对象而不对原来的DataFrame做任何修改。