目录

前言

1. 常用数据分析库

2. 数据分析基本流程

# 1.导入 .xls或者 .xlsx文件, 主要使用 Pandas的 read_excel()方法# 1. 常规导入import pandas as pddf = pd.read_excel('1月.xlsx')# print(df) # 输出表格全部的数据print(df.head(10)) # 输出表格前5行的数据​编辑

2.1 数据获取与导入

3. 典型应用场景

数据可视化:将数据以图表形式呈现,辅助决策。

统计分析:假设检验、相关性分析等。

机器学习建模:预测、分类和聚类等。

总结通过以上工具和方法,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. 典型应用场景

  1. 数据可视化:将数据以图表形式呈现,辅助决策。

  2. 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()

  3. 统计分析:假设检验、相关性分析等。

    # 内嵌环形饼图
    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()
     

  4. 机器学习建模:预测、分类和聚类等。

    # 根据职业发展研究,影响个人职业成功的关键因素包含以下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()

  5. 总结通过以上工具和方法,Python 能够高效处理从数据收集到模型部署的全流程,广泛应用于金融、医疗、电商、科研等领域。

  6. 相关python.数据分析与应用学习链接pandas documentation — pandas 2.2.3 documentation

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐