Python数据分析期中测试--百货商场案例

本文通过百货商场案例,介绍了如何使用Python的pandas库进行数据读取、探索、预处理,包括空值判断与处理、重复值识别及消除,以及性别比例分析和年龄区间划分。重点展示了pandas的基础操作和数据清洗技巧。
摘要由CSDN通过智能技术生成

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

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值