实训3 Pandas数据分析实战(2)

简介: 实训3 Pandas数据分析实战(2)

各位可以看下题目是否相同,然后再参考哈 ,希望对各位有用

需要数据可以私聊(^_^)/


题目

74a18aaed9b240cb86bfd17e360379be.png


1. 使用数据差分查看员工业绩波动情况(20分,其中完成代码功能并辅以注释12分,针对结果进行文字分析8分)

# 1.使用数据差分查看员工业绩波动情况(20分,其中完成代码功能并辅以注释12分,针对结果进行文字分析8分)
import pandas as pd
# 读取全部数据,使用默认索引
df = pd.read_excel(r'超市营业额2.xlsx')
print('每天交易额变化情况', '=' * 20)
dff = df.groupby(by = '日期').sum()['交易额'].diff()
# 格式化,正数前面带加号
print(dff.map(lambda num:'%+.2f'%num)[ : ])
print('张三的每天交易总额变化情况', '=' * 20)
print(df[df.姓名 == '张三'].groupby(by = '日期').sum()['交易额'].diff()[ : ])

750a3751aa6cede8fc9af200881dd6a2.png


2. 使用透视表和交叉表查看业绩汇总数据(20分,其中完成代码功能并辅以注释12分,针对结果进行文字分析8分)

# 2.用透视表和交叉表查看业绩汇总数据
# (1) 用透视表查看业绩汇总数据
import pandas as pd
df = pd.read_excel(r'超市营业额2.xlsx') #读取全部数据,使用默认索引
print('查看每人每天交易总额', '=' * 20)
dff = df.groupby(by = ['姓名', '日期'], as_index = False).sum()
dff = dff.pivot(index = '姓名', columns = '日期', values = '交易额') # 姓名作为索引,日期作为列名,交易额作为单元格数据
print(dff.iloc[:,:5]) #只输出前 5 天的数据

57e65d0c078249c235fb2b02a19abc01.png

# <2>交易额低于 5 万元的员工前 5 天业绩
print('交易额低于 5 万元的员工前 5 天业绩', '=' * 20)
print(dff[dff.sum(axis = 1) < 50000].iloc[:,:5])

d094a89585dc8c74891a6453a2432683.png

# <3> 使用 pivot_table() 方法实现
print('使用 pivot_table() 方法实现', '=' * 20)
# 如果把显示前 5 列的限制去掉,最后会还有一个名字为 ALL 的列
print(df.pivot_table(values = '交易额', index = '姓名',
                     columns = '日期',
                     aggfunc = 'sum', margins = True).iloc[:,:5])

62f41b018b43aaeda5fb21f27ec296dd.png

# <4> 查看每人在各柜台的交易总额
print('查看每人在各柜台的交易总额', '=' * 20)
dff = df.groupby(by = ['姓名', '柜台'], as_index = False).sum()
print(dff.pivot(index = '姓名', columns = '柜台', values = '交易额'))

6226f9a1e92cbb85a7b00ee3214ba4f3.png

# <5> 查看每人在各柜台上上班的次数
print('查看每人在各柜台上上班的次数', '=' * 20)
print(df.pivot_table(values = '交易额', index = '姓名',
                     columns = '日期',
                     aggfunc = 'count', margins = True).iloc[:])

857f400f618e8f1ebe0f11367ee72e96.png

# <6> 查看每人在各柜台的上班次数
print('查看每人在各柜台的上班次数', '=' * 20)
print(df.pivot_table(values = '交易额', index = '姓名',
                    columns = '柜台',
                    aggfunc = 'count', margins = True))

61f24aca7ec65378f20b000f8702da90.png

# (2) 用交叉表查看业绩汇总数据
import pandas as pd
# 读取全部数据,使用默认索引
df = pd.read_excel(r'超市营业额2.xlsx')
# <1> 每人每天上班次数
print('每人每天上班次数', '=' * 20)
print(pd.crosstab(df.姓名, df.日期, margins = True).iloc[::])

ee852eeac4422caf4b349e4043442def.png

# <2> 每人在各柜台上班总次数
print('每人在各柜台上班总次数', '=' * 20)
print(pd.crosstab(df.姓名, df.日期, margins = True).iloc[:,:])

a75e49612925801dd641a791beeb1977.png

# <3> 每人在各柜台交易总额
print('每人在各柜台交易总额', '=' * 20)
print(pd.crosstab(df.姓名, df.柜台, df.交易额, aggfunc = 'sum'))

df86752c96289839fee9e83925986fa7.png

# <4> 每人在各柜台交易额平均值
print('每人在各柜台交易额平均值', '=' * 20)
print(pd.crosstab(df.姓名, df.柜台, df.交易额,
                  aggfunc = 'mean').apply(lambda num: round(num, 2)))

a98b63f2d357e29fc2d4d1a2dcf12919.png


3. 使用重采样技术按时间段查看员工业绩(20分,其中完成代码功能并辅以注释12分,针对结果进行文字分析8分)

# 3.使用重采样技术按时间段查看员工业绩
import pandas as pd
import numpy as np
# 读取全部数据,使用默认索引
df = pd.read_excel('超市营业额2.xlsx')
df.日期 = pd.to_datetime(df.日期)
# <1> 每天 7 天营业总额
print('每天 7 天营业总额', '=' * 20)
print(df.resample('7D', on = '日期').sum()['交易额'])

5747f507c2b2cfcca8eb53a0fb91c1e8.png

# <2> 每 7 天营业总额
print('每 7 天营业总额', '=' * 20)
print(df.resample('7D', on = '日期',
                 label = 'right').sum()['交易额'])

3c41f016a258762a6ef24f1852a6ac44.png

# <3> 每 7 营业额平均值
print('每 7 营业额平均值', '=' * 20)
func = lambda num : round(num, 2)
print(df.resample('7D', on = '日期',
     label = 'right').mean().apply(func)['交易额'])

ecfeffa0bacf28b5f8b402cd4dd2626e.png


4. 使用标准差与协方差分析员工业绩(20分,其中完成代码功能并辅以注释12分,针对结果进行文字分析8分)

# 4.使用标准差与协方差分析员工业绩
import pandas as pd
# 设置列对齐
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
# 读取全部数据,数用默认索引
df = pd.read_excel('超市营业额2.xlsx')
# 丢弃缺失和重复值
df.dropna(inplace = True)
df.drop_duplicates(inplace = True)
# 处理异常值
df.loc[df.交易额 < 200, '交易额'] = 200
df.loc[df.交易额 > 3000, '交易额'] = 3000
# 使用交叉表得到不同员工在不同柜台的交易额平均值
dff = pd.crosstab(df.姓名, df.柜台, df.交易额, aggfunc = 'mean')
# 标准差
print('标准差', '=' * 20)
print(dff.std())
# 协方差
print('协方差', '=' * 20)
print(dff.cov())


4. 使用标准差与协方差分析员工业绩(20分,其中完成代码功能并辅以注释12分,针对结果进行文字分析8分)

ff89a8315020c15b326776989e564aae.png


5. 绘制各员工在不同柜台业绩平均值的柱状图(20分,其中完成代码功能并辅以注释12分,针对结果进行文字分析8分)

# 5.绘制各员工在不同柜台业绩平均值的柱状图
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
# 读取全部数据,使用默认索引
df = pd.read_excel('超市营业额2.xlsx')
# 修改异常值
df.loc[df.交易额 > 3000, '交易额'] = 3000
df.loc[df.交易额 < 200, '交易额'] = 200
# 删除重复值
df.drop_duplicates(inplace = True)
# 填充缺失值
df['交易额'].fillna(df['交易额'].mean(), inplace = True)
# 使用交叉表得到每人在各交易额平均值
print('=' * 20)
df_group = pd.crosstab(df.姓名, df.柜台, df.交易额,
                       aggfunc = 'mean').apply(round)
# 绘制柱状图,默认使用 idnex 作为横坐标
df_group.plot(kind = 'bar')
# 设置字体
font = fm.FontProperties(fname = 'C:\Windows\Fonts\STKAITI.ttf')
plt.xlabel('员工业绩分布', fontproperties = 'simbei')
plt.xticks(fontproperties = 'simhei')
plt.legend(prop = font)
# 显示绘制结果
plt.show()


cd922e161b84e720f24db41c573bbdca.png



目录
相关文章
|
3月前
|
数据采集 数据可视化 数据挖掘
Pandas数据应用:天气数据分析
本文介绍如何使用 Pandas 进行天气数据分析。Pandas 是一个强大的 Python 数据处理库,适合处理表格型数据。文章涵盖加载天气数据、处理缺失值、转换数据类型、时间序列分析(如滚动平均和重采样)等内容,并解决常见报错如 SettingWithCopyWarning、KeyError 和 TypeError。通过这些方法,帮助用户更好地进行气候趋势预测和决策。
145 71
|
3月前
|
存储 数据采集 数据可视化
Pandas数据应用:电子商务数据分析
本文介绍如何使用 Pandas 进行电子商务数据分析,涵盖数据加载、清洗、预处理、分析与可视化。通过 `read_csv` 等函数加载数据,利用 `info()` 和 `describe()` 探索数据结构和统计信息。针对常见问题如缺失值、重复记录、异常值等,提供解决方案,如 `dropna()`、`drop_duplicates()` 和正则表达式处理。结合 Matplotlib 等库实现数据可视化,探讨内存不足和性能瓶颈的应对方法,并总结常见报错及解决策略,帮助提升电商企业的数据分析能力。
161 73
|
8天前
|
SQL JSON 数据可视化
基于 DIFY 的自动化数据分析实战
本文介绍如何使用DIFY搭建数据分析自动化流程,实现从输入需求到查询数据库、LLM分析再到可视化输出的全流程。基于经典的employees数据集和DIFY云端环境,通过LLM-SQL解析、SQL执行、LLM数据分析及ECharts可视化等模块,高效完成数据分析任务。此方案适用于人力资源分析、薪酬管理等数据密集型业务,显著提升效率并降低成本。
657 4
|
3天前
|
存储 分布式计算 大数据
基于阿里云大数据平台的实时数据湖构建与数据分析实战
在大数据时代,数据湖作为集中存储和处理海量数据的架构,成为企业数据管理的核心。阿里云提供包括MaxCompute、DataWorks、E-MapReduce等在内的完整大数据平台,支持从数据采集、存储、处理到分析的全流程。本文通过电商平台案例,展示如何基于阿里云构建实时数据湖,实现数据价值挖掘。平台优势包括全托管服务、高扩展性、丰富的生态集成和强大的数据分析工具。
|
12天前
|
数据采集 机器学习/深度学习 数据挖掘
利用Beautiful Soup和Pandas进行网页数据抓取与清洗处理实战
本文通过一个实战案例,介绍如何使用Python中的Beautiful Soup库抓取网页数据,并用Pandas进行清洗和处理。首先,确保安装了requests、beautifulsoup4和pandas库。接着,通过requests获取HTML内容,使用Beautiful Soup解析并提取新闻标题、发布时间和正文。然后,利用Pandas对数据进行清洗,包括去除多余空格、替换特殊字符、删除无效数据等。最后,根据需求进行数据处理(如过滤关键词)并保存为CSV或Excel文件。这个案例适合初学者和有一定经验的用户,帮助快速掌握这两个强大的工具。
21 3
|
4月前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
125 0
|
2月前
|
存储 数据采集 数据可视化
Pandas数据应用:医疗数据分析
Pandas是Python中强大的数据操作和分析库,广泛应用于医疗数据分析。本文介绍了使用Pandas进行医疗数据分析的常见问题及解决方案,涵盖数据导入、预处理、清洗、转换、可视化等方面。通过解决文件路径错误、编码不匹配、缺失值处理、异常值识别、分类变量编码等问题,结合Matplotlib等工具实现数据可视化,并提供了解决常见报错的方法。掌握这些技巧可以提高医疗数据分析的效率和准确性。
89 22
|
3月前
|
数据采集 数据可视化 索引
Pandas数据应用:股票数据分析
本文介绍了如何使用Pandas库进行股票数据分析。首先,通过pip安装并导入Pandas库。接着,从本地CSV文件读取股票数据,并解决常见的解析错误。然后,利用head()、info()等函数查看数据基本信息,进行数据清洗,处理缺失值和重复数据。再者,结合Matplotlib和Seaborn进行数据可视化,绘制收盘价折线图。最后,进行时间序列分析,设置日期索引、重采样和计算移动平均线。通过这些步骤,帮助读者掌握Pandas在股票数据分析中的应用。
102 5
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
Python数据科学实战:从Pandas到机器学习
Python数据科学实战:从Pandas到机器学习
|
4月前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
77 2