Python数据分析期中测试–百货商场案例, 使用pandas

1 背景介绍

帮同学写了这个作业,花了2个多小时吧,熟悉的人做应该不到半个个小时就好了吧。主要不熟练pandas库,很多东西都要自己查一下API,也是第一次用Jupyter,这个东西真的恶心人,用Pycharm或者Spyder不好吗?调试也不方便。 反正笔者是没有搞懂Jupyter的好处,估计是对非科班的人吧,看一行run一行, 方便找到结果。写本篇博客的目的是回顾一下pandas的基本用法和数据分析思路,以后遇到同类问题找资料比较方便一点,也算是一个查找字典吧。
在这里插入图片描述

2 开始实战

2.1 数据分析期中测试–百货商场案例

import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import pandas as pd
import warnings

%matplotlib inline
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
matplotlib.rcParams.update({'font.size' : 16})
plt.style.use('ggplot')
warnings.filterwarnings('ignore')

2.2 读取数据

df_cum = pd.read_excel('./cumcm2018c1.xlsx')

2.3 查看数据前10行

df_cum.head()

在这里插入图片描述

2.4 数据探索与预处理

df_cum.shape # 查看行数和列数

df_cum.dtypes # 查看行数和列数

2.5 数据信息概况

df_cum.describe #  统计描述信息

2.6 空值判断

dataFrame = df_cum
dataFrame[pd.isnull(dataFrame["会员卡号"])]  #判断该列是否空值的,并显示
dataFrame[pd.isnull(dataFrame["出生日期"])] # 34188 行为null
dataFrame[pd.isnull(dataFrame["性别"])]     #9435 行为null
dataFrame[pd.isnull(dataFrame["登记时间"])] #12684 为null

2.7 选取空值最多的变量进行空值处理

# "出生日期"列有34188 行为null ,故选择该列

print("处理前",dataFrame.shape)
newDataFrame = dataFrame.dropna(subset = ["出生日期"],how = "any") #直接删除空值
print("处理后",newDataFrame.shape)

在这里插入图片描述

2.8 重复值判断

#return1 = dataFrame["会员卡号"].duplicated()
return1 = dataFrame["会员卡号"].value_counts().count() # 计算非重复值个数。 194754
print(194760-return1) #重复值个数 6
return2 = dataFrame["出生日期"].value_counts().count() # 计算非重复值个数。 194754
print(194760-return2) #重复值个数 176736
return3 = dataFrame["性别"].value_counts().count() # 计算非重复值个数。 194754
print(194760-return3) #重复值个数 194758
return4 = dataFrame["登记时间"].value_counts().count() # 计算非重复值个数。 194754
print(194760-return4) #重复值个数 164391

2.9 选取重复值值最多的变量进行重复值处理

# "性别" 列重复数据最多
print(dataFrame.drop_duplicates(["性别"],keep="last")) #去除某一列的重复数据

3统计性分析

3.1 将性别列进行转换,0表示女,1表示男

# 先删除异常值
dataFrame = df_cum
dataFrame["性别"].dropna()
sexDataFrame = dataFrame["性别"].replace([0,1],["女","男"])

3.2 分析男女比例

sexList = list(sexDataFrame)
print("总人数:",len(sexList))
不可见,付费内容....

在这里插入图片描述

3.3 将年龄划分为老年(1920-1950)、中年(1960-1990)、青年(1990-2010),绘制一个饼图

付费内容
这里代码就不直接给出了,
资料百度网盘分享:有需要联系qq:xxxx                
ps(非诚勿扰):9.9RMB

在这里插入图片描述

Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐