Python办公之一:获取多组数据的每日平均值的近似值所对应的日期

Python办公之一:获取多组数据的每日平均值的近似值所对应的日期

一、需求

1、数据描述:1000个通道,每个通道每日不定时采集数据n份。

2、结果描述:每个通道每日取一组数据(日期,壁厚),要求壁厚是每日数据与平均值最接近的一个数。

3、原始数据图:
在这里插入图片描述

二、设计

1、读取原始数据

一共需要提取1000组、365天的数据,观察数据在excel表中的形式,结合后期处理方式,确定以字典包含列表的形式提取数据,方便后面对数据的操作

#获取excel需要操作的工作页
#参数:route:路径;sheet_name:工作页
def tab(route, sheet_name):
    data = xlrd.open_workbook(route)
    data.sheet_names()
    table = data.sheet_by_name(sheet_name)
    return table
#导入井口摄像头数据(数据形式以两列,同间隔格式)
'''
route:路径
sheet_name:工作页
number_lie:第几列开始取值
numbel_hang:第几行开始取值
n:探头个数
interval:相同数据的间隔(不同探头数据的日期行间隔)
返回值:返回一个列表,形式:list = [{'lie_1':['44078.7','44079.64', ...]},{'dlie_1':['21.17', '21.18', ...]}]
'''
def imp(route, sheet_name, number_lie, numbel_hang, interval, n):
    table = tools.MyLibrary.tab(route, sheet_name)
    lis = []
    dic01 = {
   }
    dic02 = {
   }
    num = 0
    for j in range(1, n+1):#1,2,3,4...12
        dic01['lie_' + str(j)] = [str(table.cell_value(i, numbel_hang-1+interval*num)) for i in range(number_lie-1, table.nrows)]
        dic02['dlie_' + str(j)] = [str(table.cell_value(i, numbel_hang+interval*num)) 
Python中,蒙特卡罗模型是一种数值模拟方法,它通过大量的随机抽样来估算复杂问题的概率分布。平均值(Mean)和标准差(Standard Deviation)是其中常用的统计量: 1. 平均值(Mean):在蒙特卡罗模拟中,它可以用来计算某个变量的期望值,即多次实验结果的平均值。对于连续概率密度函数,平均值通常对应于其积分下的期望。 2. 标准差(Standard Deviation):这是衡量数据点相对于平均值分散程度的一个指标。在蒙特卡罗模型中,它可以帮助我们了解随机结果的不确定性。如果标准差较大,说明结果的变化范围广;反之,如果标准差较小,表示结果更稳定。 为了实现蒙特卡洛模型,你可以按照以下步骤操作: ```python import numpy as np def monte_carlo_simulation(mean, std_dev, num_trials, function): # 初始化结果列表 results = [] for _ in range(num_trials): # 随机生成服从正态分布的数据点 random_value = mean + std_dev * np.random.randn() # 调用函数并记录结果 result = function(random_value) results.append(result) # 计算平均值和标准差 average = np.mean(results) std_dev_average = np.std(results) return average, std_dev_average # 示例:计算圆周率的估计值 mean_pi = 3.14 std_dev = 0.01 num_trials = 1000000 pi_estimate = monte_carlo_simulation(mean_pi, std_dev, num_trials, calculate_circle_area) print(f"平均估计值:{pi_estimate[0]}") print(f"标准差:{pi_estimate[1]}") def calculate_circle_area(radius): # 模拟函数,这里假设一个近似的公式 area = radius ** 2 return area
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值