拿到一组用户的交易数据,我们如何做数据分析?常规地做法是做用户画像,比如分别对性别、年龄、受教育水平、婚姻状况等做描述统计分析,研究不同的用户特征对于交易金额的影响。
本文使用Python对一组交易金额数据做数据分析,通过对数据进行预处理,包括数据类型转换、重复值判断、缺失值处理、数据分组,对用户做初步画像,下面一起来学习。
示例工具:anconda3.7
本文讲解内容:交易数据用户画像
适用范围:Python用户画像
使用read_excel命令导入数据。
打印一下数据形状,本次使用的案例数据共计3000行,6列。
data.shape(3000,6)
使用dtypes命令查看数据类型,其中,用户ID为数值类型,交易金额和交易日期为字符类型。
由前文可以知道用户ID为数值类型,交易金额和交易日期为字符类型,这里数据类型不对就不能做对应的数据运算,比如交易金额为字符类型就不能求和只能计数,使用astype函数做数据类型转换。
False
使用isnull()函数判断是否存在缺失值,由结果判断结果得知性别、年龄、受教育水平均有缺失值。
计算各个变量的缺失值比例,如果该变量的缺失值比例大于30%,则不选用该变量作为分析字段。
同时,将年龄中缺失值的行进行删除处理,删除受教育水平变量以及删除年龄变量中缺失行数据,最后数据剩下2900行5列。
除了直接删除缺失行,还可以采用反向选择的方法,反向筛选删除年龄中的缺失值。
(2900,5)
除了使用直接删除的方法删除缺失值外,还可以使用众数或者是平均值进行缺失值填充这里对性别使用众数进行缺失值填充,对年龄使用平均值进行缺失值填充。
研究年龄与交易金额的关系,首先用qcut函数进行分组,将年龄分组为5个年龄段,同时按照分组后的年龄段进行分组求和,绘制柱形图可以得知,年龄段在28~37的交易金额最大,年龄段在37~42的交易金额最小。
上面计算出组距,然后使用pd.cut函数将交易金额进行等额分组,设置bins即可等额分组,同时按照分组结果分组计数,绘制柱形图可以得知,交易金额在1000~1500的人数最多,交易金额在0~500的人数最少。