一、数据处理清洗
1. 数据读取与准备
从两个Excel文件中提取所需的数据。这包括任务的GPS坐标、会员的GPS坐标和会员的信誉值。使用pandas库读取Excel文件是因为它提供了强大的数据处理功能,可以轻松处理大量数据,并且支持多种数据操作,如筛选、排序和聚合,这对后续的数据分析至关重要。
2. 距离计算
设计中核心的部分是计算任务地点和会员位置之间的地理距离。距离计算使用了地球上两点间的近似距离公式,这需要将纬度和经度转换为弧度,然后应用特定的地理计算公式。这一步骤关键在于准确和高效地处理数学运算。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “商会” 获取。👈👈👈
3. 任务吸引力分析
根据计算出的距离,进一步分析特定任务的吸引力。例如,统计在5公里范围内的会员数量,和这些会员的信誉值总和。这不仅涉及基本的条件筛选,也涉及到数据聚合。
二、数据可视化
首先,从Excel文件中读取了两组数据,一组是已结束项目任务数据,另一组是会员信息数据。为了处理这些数据,使用了pandas库来读取Excel文件并将数据存储在DataFrame中。这两个文件分别包含了任务的详细信息(包括任务编号、GPS坐标、标价和执行情况)和会员的详细信息(包括会员编号、位置、预订任务限额、预订任务开始时间和信誉值)。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “商会” 获取。👈👈👈
import pandas as pd import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号 tasks_df = pd.read_excel('已结束项目任务数据.xlsx', engine='openpyxl') members_df = pd.read_excel('会员信息数据.xlsx', engine='openpyxl')
为了计算特定任务位置与所有会员位置之间的距离,定义了一个距离计算函数calculate_distance。该函数使用了地球表面的弧长公式,考虑了纬度和经度的变化,确保计算的准确性。然后,提取了特定任务(A0001和A0002)的GPS坐标,并计算了每个会员到这两个任务位置的距离。
def calculate_distance(lat1, lon1, lat2, lon2): phi1, phi2 = np.radians(lat1), np.radians(lat2) lambda1, lambda2 = np.radians(lon1), np.radians(lon2) delta = 111.199 * np.sqrt((phi1 phi2) 2 + ((lambda1 lambda2) 2) * np.cos((phi1 + phi2) / 2) 2) return delta
进行了两项具体的统计分析:计算任务A0001在5公里范围内的会员个数。计算任务A0002在5公里范围内所有会员的信誉值总和。
这些统计数据可以帮助了解不同任务的会员参与情况和信誉情况,从而更好地评估任务的完成质量和会员的分布情况。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “商会” 获取。👈👈👈
print(S_A0001) print(S_A0002) print("A0001任务5公里范围内的会员个数:", A0001_Bnum) print("A0002任务5公里范围内所有会员信誉值总和:", A0002_Bavg)
柱状图:展示了前15个任务的标价分布。
通过柱状图分析,可以直观地比较不同任务的标价,了解任务标价的整体分布情况。
散点图:展示了前15个会员的位置和信誉值。
通过散点图分析,展示了前15个会员的位置和信誉值,横轴和纵轴分别表示会员的纬度和经度,每个点的颜色代表对应会员的信誉值。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “商会” 获取。👈👈👈
直方图:展示了前10个任务的标价分布频率。
通过直方图分析,展示了前10个任务的标价分布频率,横轴表示任务标价的区间,纵轴表示每个标价区间内任务的数量。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “商会” 获取。👈👈👈
折线图:展示了前15个任务的标价变化趋势。
通过折线图分析,展示了前15个任务的标价变化趋势,横轴表示任务编号,纵轴表示任务标价。
饼状图:展示了任务执行情况的比例分布。
通过饼状图分析,展示了任务执行情况的比例分布,其中每个扇形代表不同任务执行情况的比例,直观地显示了已完成任务和未完成任务在总任务中的占比。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “商会” 获取。👈👈👈
玫瑰图:展示了前15个任务的标价在极坐标系下的分布。
通过玫瑰图分析,展示了前15个任务的标价在极坐标系下的分布,每个扇形的角度和半径分别表示任务的编号和标价。
箱线图:展示了前15个会员的信誉值分布情况。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “商会” 获取。👈👈👈