python数据分析与应用
目录
总结通过以上工具和方法,Python 能够高效处理从数据收集到模型部署的全流程,广泛应用于金融、医疗、电商、科研等领域。
相关python.数据分析与应用学习链接pandas documentation — pandas 2.2.3 documentation
前言
下面我将介绍 Python 数据分析与应用的基础知识,包括常用库、数据分析流程和实际应用示例。
核心库
NumPy:提供多维数组对象和高效的计算函数,是科学计算的基础。
pandas:提供 DataFrame 数据结构,适合处理结构化数据,支持数据清洗、聚合、透视等操作。
Matplotlib/Seaborn:可视化库,前者灵活,后者提供更美观的默认样式和高级统计图表。
SciPy:包含优化、积分、插值等科学计算工具。
Scikit-learn:机器学习库,提供分类、回归、聚类等算法。
1. 常用数据分析库
Python 中有几个核心库用于数据分析:
常用数据分析库的导入
import pandas as pd 数据处理与分析
import numpy as np 数值计算
import matplotlib.pyplot as plt 数据可视化
import seaborn as sns 高级数据可视化
import scipy.stats as stats 统计分析
2. 数据分析基本流程
# 1.导入 .xls或者 .xlsx文件, 主要使用 Pandas的 read_excel()方法
# 1. 常规导入
import pandas as pd
df = pd.read_excel('1月.xlsx')
# print(df) # 输出表格全部的数据
print(df.head(10)) # 输出表格前5行的数据
# 1.导入 .xls或者 .xlsx文件, 主要使用 Pandas的 read_excel()方法
# 1. 常规导入
import pandas as pd
df = pd.read_excel('1月.xlsx')
# print(df) # 输出表格全部的数据
print(df.head(10)) # 输出表格前5行的数据
典型的数据分析流程包括以下步骤:
2.1 数据获取与导入

3. 典型应用场景
-
数据可视化:将数据以图表形式呈现,辅助决策。
-
plt.plot() 绘图: 语法:plt.plot(x, y, color, linestyle, linewidth, marker, markerfacecolor, markersize, label) 各参数介绍如下: x: x轴数据 y: y轴数据 color: 线的颜色 linestyle: 线条样式 linewidth: 线条宽度(用数字表示大小) marker: 标记的样式 markerfacecolor: 标记填充颜色 markersize: 标记尺寸(用数字表示大小) label: 线条的标签(后文结合 legend() 创建图例来讲) # 绘制第一张图表 import matplotlib.pyplot as plt #折线图 plt.plot([1,3,5,7,9], [1, 8, 3, 6, 2]) # x轴默认是 [0,1,2,3,4]plt.plot() 绘图:
语法:plt.plot(x, y, color, linestyle, linewidth, marker, markerfacecolor, markersize, label)
各参数介绍如下:
x: x轴数据
y: y轴数据
color: 线的颜色
linestyle: 线条样式
linewidth: 线条宽度(用数字表示大小)
marker: 标记的样式
markerfacecolor: 标记填充颜色
markersize: 标记尺寸(用数字表示大小)
label: 线条的标签(后文结合 legend() 创建图例来讲)
# 绘制第一张图表
import matplotlib.pyplot as plt
#折线图
plt.plot([1,3,5,7,9], [1, 8, 3, 6, 2]) # x轴默认是 [0,1,2,3,4]

import matplotlib.pyplot as plt import pandas as pd # 用figure()方法来设置画布大小、分辨率、颜色、边框 plt.rcParams['font.sans-serif'] = ['SimHei'] # 解决中文乱码问题 plt.rcParams['axes.unicode_minus'] = False # 解决负号不显示问题 flg = plt.figure( figsize=(5,3), facecolor = 'yellow') df = pd.read_excel('体温.xls') # 折线图 x = df['日期'] # x轴数据 y = df['体温'] # y轴数据 plt.plot(x, y, color = 'm', linestyle = '--', marker = 'o' ) plt.xlabel('2020年2月') # x轴标题 plt.ylabel('基础体温') # y轴标题 plt.grid(color = 'r', linestyle = '--',linewidth = 1, axis='y') # 设置网格线,用 plt.grid()。 axis='y'是将 Y 轴是网格线隐藏。 plt.legend('基础体温', fontsize = 8, loc = 'upper left') # 手动添加图例。fontsize字体大小,loc 图例显示位置。 # plt.legend() # 自动显示图例 plt.show()import matplotlib.pyplot as plt
import pandas as pd
# 用figure()方法来设置画布大小、分辨率、颜色、边框plt.rcParams['font.sans-serif'] = ['SimHei'] # 解决中文乱码问题
plt.rcParams['axes.unicode_minus'] = False # 解决负号不显示问题flg = plt.figure( figsize=(5,3), facecolor = 'yellow')
df = pd.read_excel('体温.xls')
# 折线图
x = df['日期'] # x轴数据
y = df['体温'] # y轴数据plt.plot(x, y, color = 'm', linestyle = '--', marker = 'o' )
plt.xlabel('2020年2月') # x轴标题
plt.ylabel('基础体温') # y轴标题plt.grid(color = 'r', linestyle = '--',linewidth = 1, axis='y') # 设置网格线,用 plt.grid()。 axis='y'是将 Y 轴是网格线隐藏。
plt.legend('基础体温', fontsize = 8, loc = 'upper left') # 手动添加图例。fontsize字体大小,loc 图例显示位置。
# plt.legend() # 自动显示图例
plt.show()

-
统计分析:假设检验、相关性分析等。
# 内嵌环形饼图 import pandas as pd import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] df1 = pd.read_excel('data2.xlsx') df2=pd.read_excel('data2.xlsx',sheet_name='2月') #数据集,x1,x2分别对应外环、内环百分比例 x1=df1['销量'] x2=df2['销量'] #设置饼状图各个区块的颜色 colors = ['red', 'yellow', 'slateblue', 'green','magenta','cyan','darkorange','lawngreen','pink','gold'] #外环 plt.pie(x1,autopct='%.1f%%',radius=1,pctdistance=0.85,colors=colors,wedgeprops=dict(linewidth=2,width=0.3,edgecolor='w')) #内环 plt.pie(x2,autopct='%.1f%%',radius=0.7,pctdistance=0.7,colors=colors,wedgeprops=dict(linewidth=2,width=0.4,edgecolor='w')) #图例 legend_text=df1['地区'] plt.legend(legend_text,title='地区',frameon=False,bbox_to_anchor=(0.2,0.5))#设置图例标题、位置、去掉图例边框 plt.axis('equal')#设置坐标轴比例以显示为圆形 plt.title('2020年1月和2月各地区销量占比情况分析') plt.show()
# 内嵌环形饼图
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']df1 = pd.read_excel('data2.xlsx')
df2=pd.read_excel('data2.xlsx',sheet_name='2月')#数据集,x1,x2分别对应外环、内环百分比例
x1=df1['销量']
x2=df2['销量']#设置饼状图各个区块的颜色
colors = ['red', 'yellow', 'slateblue', 'green','magenta','cyan','darkorange','lawngreen','pink','gold']#外环
plt.pie(x1,autopct='%.1f%%',radius=1,pctdistance=0.85,colors=colors,wedgeprops=dict(linewidth=2,width=0.3,edgecolor='w'))
#内环
plt.pie(x2,autopct='%.1f%%',radius=0.7,pctdistance=0.7,colors=colors,wedgeprops=dict(linewidth=2,width=0.4,edgecolor='w'))#图例
legend_text=df1['地区']
plt.legend(legend_text,title='地区',frameon=False,bbox_to_anchor=(0.2,0.5))#设置图例标题、位置、去掉图例边框
plt.axis('equal')#设置坐标轴比例以显示为圆形
plt.title('2020年1月和2月各地区销量占比情况分析')
plt.show()

-
机器学习建模:预测、分类和聚类等。
# 根据职业发展研究,影响个人职业成功的关键因素包含以下5个维度: '专业知识', '社交能力', '领导能力', '自我管理', '学习能力' 。 # 这5个维度所占的比重值分别是 38, 29, 15, 35, 32。现要绘制5个维度的雷达图,要求输出结果如下图。最后请将代码和输出结果截图上传。 import matplotlib.pyplot as plt from math import pi # 数据 labels = ['专业知识', '社交能力', '领导能力', '自我管理', '学习能力'] data = [38, 29, 15, 35, 32] # 雷达图需要把这些点连成一个闭合多边形(就像画五角星要回到起点)。38 → 29 → 15 → 35 → 32 → 停止! # 闭合图形 data = data+ data[0:1] # data[0:1] 表示 "取列表第一个元素"(此时的 data = [38, 29, 15, 35, 32,38]) angles = [n / 5 * 2 * pi for n in range(5)] # 改行代码可以直接使用,只需要改变维度值即可。最终得到的是将圆周进行5等分的弧度值:[0, 0.4π, 0.8π, 1.2π, 1.6π] angles = angles + angles[:1] # angles[:1] 切片获取原列表的第一个元素,通过 + 运算符将原列表与首元素拼接(如原列表 [0,1,2] 会变成 [0,1,2,0])。 # 创建图 plt.figure(figsize=(5, 5)) ax = plt.subplot(polar=True) # polar=True:坐标系转换为极坐标形式,此时x轴变为角度(0-2π弧度),y轴变为半径,后续绘图指令将自动按极坐标规则处理数据 # 画图 ax.plot(angles, data,color='blue',linewidth=2) # 绘制折线图。angles是角度数组(弧度制),data是对应的半径值。会连接各点形成多边形轮廓 # 填充多边形内部区域,alpha=0.1设置10%透明度(范围0-1) ax.fill(angles, data, alpha=0.2) # 设置标签 # 用于在极坐标图中设置角度轴(θ轴)的刻度和标签 # 设置刻度位置为angles数组除最后一个元素外的所有角度值 ax.set_xticks(angles[:-1]) ax.set_xticklabels(labels) # labels列表长度应与angles[:-1]保持一致 # 显示 plt.show()
# 根据职业发展研究,影响个人职业成功的关键因素包含以下5个维度: '专业知识', '社交能力', '领导能力', '自我管理', '学习能力' 。
# 这5个维度所占的比重值分别是 38, 29, 15, 35, 32。现要绘制5个维度的雷达图,要求输出结果如下图。最后请将代码和输出结果截图上传。
import matplotlib.pyplot as plt
from math import pi
# 数据
labels = ['专业知识', '社交能力', '领导能力', '自我管理', '学习能力']
data = [38, 29, 15, 35, 32] # 雷达图需要把这些点连成一个闭合多边形(就像画五角星要回到起点)。38 → 29 → 15 → 35 → 32 → 停止!
# 闭合图形
data = data+ data[0:1] # data[0:1] 表示 "取列表第一个元素"(此时的 data = [38, 29, 15, 35, 32,38])angles = [n / 5 * 2 * pi for n in range(5)] # 改行代码可以直接使用,只需要改变维度值即可。最终得到的是将圆周进行5等分的弧度值:[0, 0.4π, 0.8π, 1.2π, 1.6π]
angles = angles + angles[:1] # angles[:1] 切片获取原列表的第一个元素,通过 + 运算符将原列表与首元素拼接(如原列表 [0,1,2] 会变成 [0,1,2,0])。
# 创建图
plt.figure(figsize=(5, 5))
ax = plt.subplot(polar=True) # polar=True:坐标系转换为极坐标形式,此时x轴变为角度(0-2π弧度),y轴变为半径,后续绘图指令将自动按极坐标规则处理数据
# 画图
ax.plot(angles, data,color='blue',linewidth=2) # 绘制折线图。angles是角度数组(弧度制),data是对应的半径值。会连接各点形成多边形轮廓
# 填充多边形内部区域,alpha=0.1设置10%透明度(范围0-1)
ax.fill(angles, data, alpha=0.2)# 设置标签
# 用于在极坐标图中设置角度轴(θ轴)的刻度和标签
# 设置刻度位置为angles数组除最后一个元素外的所有角度值
ax.set_xticks(angles[:-1])
ax.set_xticklabels(labels) # labels列表长度应与angles[:-1]保持一致
# 显示
plt.show()
-
总结通过以上工具和方法,Python 能够高效处理从数据收集到模型部署的全流程,广泛应用于金融、医疗、电商、科研等领域。
-
相关python.数据分析与应用学习链接pandas documentation — pandas 2.2.3 documentation
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)