《数据治理简易速速上手小册》第3章 数据质量管理(2024 最新版)

在这里插入图片描述

文章目录

  • 3.1 数据质量的定义和标准
    • 3.1.1 基础知识
    • 3.1.2 重点案例:电商平台的数据清洗
    • 3.1.3 拓展案例 1:医疗保健机构的数据整合
    • 3.1.4 拓展案例 2:金融服务公司的交易数据监控
  • 3.2 数据质量控制的方法与工具
    • 3.2.1 基础知识
    • 3.2.2 重点案例:电信公司的客户数据清洗
    • 3.2.3 拓展案例 1:零售企业的库存数据验证
    • 3.2.4 拓展案例 2:医疗机构的患者数据整合
  • 3.3 数据质量监测与改进
    • 3.3.1 基础知识
    • 3.3.2 重点案例:金融机构的交易数据监测
    • 3.3.3 拓展案例 1:医院的患者数据质量改进
    • 3.3.4 拓展案例 2:制造企业的库存数据优化

3.1 数据质量的定义和标准

在这一节中,我们将深入讨论数据质量的定义和标准,并通过具体案例展示如何在实际工作中实现和维护高数据质量。

3.1.1 基础知识

深入理解数据质量的概念是实施有效数据治理的重要一步。数据质量不仅关乎数据的准确性,还包括一系列其他关键特性,这些特性共同确保数据能够满足业务需求和目标。

  1. 完整性(Completeness)

    • 数据是否完整,所有必要的记录和字段是否都已被正确填充。
    • 检查缺失值,确保关键字段不为空。
  2. 一致性(Consistency)

    • 数据在不同数据源或时间点上是否保持一致。
    • 验证跨系统数据的一致性,确保数据同步。
  3. 准确性(Accuracy)

    • 数据是否准确地反映了现实或源数据。
    • 核对数据源,进行数据校验和验证。
  4. 可靠性(Reliability)

    • 数据的收集和处理是否符合标准,来源是否可靠。
    • 建立和遵循数据处理的标准化流程。
  5. 及时性(Timeliness)

    • 数据是否及时更新,是否能反映最新的情况。
    • 实施实时或定期的数据更新机制。
  6. 唯一性/去重(Uniqueness/Deduplication)

    • 数据集中是否存在重复记录。
    • 应用去重策略,确保每条记录的唯一性。
  7. 有效性(Validity)

    • 数据是否符合特定的格式、范围或规则。
    • 制定并应用数据有效性规则,如数据类型检查和格式验证。
  8. 可追溯性(Traceability)

    • 数据的来源和变更历史是否可以追溯。
    • 记录数据的来源,以及对数据所做的所有更改。

通过这些详细的数据质量标准,组织可以更全面地评估和提高其数据的质量。高数据质量是实现数据驱动决策、优化业务流程、提高客户满意度和确保合规性的基础。

3.1.2 重点案例:电商平台的数据清洗

在这个案例中,我们将使用 Python 演示一家电商平台如何清洗和提高其产品数据的质量。

数据准备

假设我们有一份包含产品信息的数据集,数据中可能包含重复值、缺失值和格式错误。

import pandas as pd# 示例电商平台产品数据
product_data = {'产品ID': ['P001', 'P002', 'P002', 'P003'],'产品名称': ['产品A', '产品B', None, '产品C'],'价格': ['100元', '200元', '200元', '300元'],'库存': [10, 20, 20, None]
}products_df = pd.DataFrame(product_data)
print(products_df)

数据清洗

清洗数据包括处理重复记录、填补缺失值和纠正格式错误。

# 去除重复记录
products_df.drop_duplicates(inplace=True)# 填补缺失值
products_df['产品名称'].fillna('未知产品', inplace=True)
products_df['库存'].fillna(0, inplace=True)  # 假设未知库存为0# 格式纠正
products_df['价格'] = products_df['价格'].str.replace('元', '').astype(int)print(products_df)

数据验证

对清洗后的数据进行进一步的验证,确保数据的准确性和完整性。

# 数据验证
def validate_product_record(record):if record['价格'] <= 0 or record['库存'] < 0:return '无效'return '有效'products_df['记录状态'] = products_df.apply(validate_product_record, axis=1)
print(products_df)

数据分析

简单的数据分析可以帮助理解数据清洗的影响。

# 分析产品价格和库存
price_summary = products_df['价格'].describe()
stock_summary = products_df['库存'].describe()print("价格概况:\n", price_summary)
print("库存概况:\n", stock_summary)

通过这个案例,电商平台能够有效地清洗其产品数据,提高数据质量,从而支持更好的产品管理和业务决策。这个过程包括去除重复记录、填补缺失值、纠正数据格式和验证数据质量,是确保高数据质量的重要步骤。

3.1.3 拓展案例 1:医疗保健机构的数据整合

在这个案例中,我们将使用 Python 展示一家医疗保健机构如何整合来自不同源的患者数据,以创建一个统一的健康记录系统。

数据准备

假设我们有来自两个不同医疗设施的患者数据集,数据格式略有差异。

import pandas as pd# 示例数据 - 医疗设施A
data_A = {'Patient_ID': ['PA123', 'PA124', 'PA125'],'Name': ['Alice', 'Bob', 'Charlie'],'Diagnosis': ['Diabetes', 'Hypertension', 'Asthma']
}# 示例数据 - 医疗设施B
data_B = {'ID': ['PB123', 'PB124', 'PB125'],'Patient_Name': ['Dave', 'Eve', 'Frank'],'Medical_Condition': ['Arthritis', 'Heart Disease', 'Bronchitis']
}df_A = pd.DataFrame(data_A)
df_B = pd.DataFrame(data_B)

数据整合

我们需要将这两个数据集合并为一个,同时处理字段名称和格式的不一致性。

# 标准化字段名
df_B.rename(columns={'ID': 'Patient_ID', 'Patient_Name': 'Name', 'Medical_Condition': 'Diagnosis'}, inplace=True)# 合并数据集
combined_df = pd.concat([df_A, df_B], ignore_index=True)
print(combined_df)

数据清洗

清洗整合后的数据,确保数据的一致性和准确性。

# 填补任何缺失值,这里假设用"未知"填补
combined_df.fillna('Unknown', inplace=True)# 检查并修正可能的错误或不一致性
# 例如,标准化诊断名称的格式
combined_df['Diagnosis'] = combined_df['Diagnosis'].str.title()
print(combined_df)

数据验证和分析

对整合后的数据进行验证,并进行简单的数据分析。

# 验证数据的有效性
def validate_record(record):if record['Patient_ID'] == '' or record['Name'] == '':return 'Invalid'return 'Valid'combined_df['Record_Status'] = combined_df.apply(validate_record, axis=1)# 简单的数据分析,例如,统计不同诊断的频率
diagnosis_counts = combined_df['Diagnosis'].value_counts()
print("诊断统计:\n", diagnosis_counts)

通过这个案例,医疗保健机构能够有效地整合并清洗来自不同源的患者数据,创建一个统一的健康记录系统。这对于提供连贯的患者护理、支持医疗决策和确保数据一致性至关重要。

3.1.4 拓展案例 2:金融服务公司的交易数据监控

在这个案例中,我们将展示一家金融服务公司如何使用 Python 实现交易数据的实时监控,以确保数据质量和及时性,并识别潜在的欺诈行为。

数据准备

假设我们有一份金融交易的数据集,包括交易ID、日期、金额和交易类型。

import pandas as pd# 示例金融交易数据
transaction_data = {'交易ID': ['T1001', 'T1002', 'T1003', 'T1004'],'交易日期': ['2023-08-01', '2023-08-01', '2023-08-02', '2023-08-02'],'交易金额': [2000, 5000, 7500, 1000],'交易类型': ['存款', '取款', '取款', '存款']
}transactions_df = pd.DataFrame(transaction_data)
transactions_df['交易日期'] = pd.to_datetime(transactions_df['交易日期'])
print(transactions_df)

数据监控

实现实时数据监控,检测异常交易模式,如异常高额交易。

# 实时监控函数
def monitor_transactions(df):high_value_threshold = 7000  # 设置高额交易阈值suspicious_transactions = df[df['交易金额'] > high_value_threshold]if not suspicious_transactions.empty:print("检测到可疑交易:\n", suspicious_transactions)else:print("未检测到可疑交易")monitor_transactions(transactions_df)

数据分析

分析交易数据,寻找交易趋势或不寻常的模式。

# 交易类型统计
transaction_types = transactions_df['交易类型'].value_counts()
print("交易类型统计:\n", transaction_types)# 交易金额分析
average_transaction = transactions_df['交易金额'].mean()
print(f"平均交易金额: {average_transaction}")

报告生成

为合规目的,自动生成交易数据的分析报告。

# 生成交易报告
transactions_df.to_csv('Financial_Transactions_Report.csv', index=False)
print("交易报告已生成")

通过这个案例,金融服务公司能够有效地监控交易数据,及时识别和响应可疑交易。这有助于防范欺诈行为,保证交易的安全性,同时也支持公司的合规性要求。Python 作为强大的数据处理和分析工具,在实现这些监控和报告功能中发挥了关键作用。

通过这些案例,我们可以看到数据质量管理在不同行业中的重要性和应用。无论是电商、医疗还是金融服务,高数据质量的维护对于支持有效的业务决策和运营至关重要。Python 作为一种强大的数据处理工具,在这些场景中发挥着关键作用。

3.2 数据质量控制的方法与工具

在这一节中,我们将探讨数据质量控制的不同方法和工具,并通过几个实际案例展示如何应用这些方法和工具。

3.2.1 基础知识

数据质量控制是确保数据能够可靠地支持业务决策和运营的关键过程。要有效地进行数据质量控制,理解以下几个核心方面是必不可少的:

  1. 数据清洗

    • 错误和不一致性的处理:清除或纠正数据集中的错误和不一致,例如错误的数据输入、格式错误或不一致的数据表示。
    • 重复数据的处理:识别和消除重复记录,确保数据的唯一性。
  2. 数据验证

    • 规则定义:基于业务规则和数据规范定义数据验证规则。
    • 自动化验证:使用自动化工具执行数据验证,确保数据满足这些预定义的规则。
  3. 数据监控

    • 持续监控:定期或实时监控数据质量,确保数据持续符合质量标准。
    • 异常检测:通过设置阈值和使用统计模型来检测异常数据或趋势。
  4. 数据整合

    • 数据融合:合并来自不同源的数据,解决数据冲突和不一致问题。
    • 数据映射:在整合过程中,确保数据在不同源之间正确映射。
  5. 工具和技术

    • 专业工具:使用数据质量管理工具,如 Informatica、Talend 等,进行数据清洗和整合。
    • 编程语言:利用 Python、SQL 等语言编写脚本进行数据处理和自动化任务。
  6. 数据质量度量

    • 质量指标:定义和计算数据质量指标,如准确率、完整率、一致率等。
    • 报告和仪表板:创建数据质量报告和仪表板,以可视化展示数据质量状态。
  7. 数据治理结构

    • 角色与责任:明确组织内部不同角色在数据质量管理中的责任。
    • 政策与流程:制定和实施数据治理政策和流程,以支持数据质量控制。

通过实施这些基础知识和方法,组织能够建立强大的数据质量控制框架,从而确保数据的可靠性和有效性,支撑业务决策和提升操作效率。

3.2.2 重点案例:电信公司的客户数据清洗

在这个案例中,我们将使用 Python 展示一家电信公司如何清洗其客户数据库,以提高数据质量。

数据准备

假设我们有一份包含电信公司客户信息的数据集,数据中可能包含重复值、缺失值和格式错误。

import pandas as pd# 示例电信公司客户数据
customer_data = {'客户ID': ['C001', 'C002', 'C002', 'C003'],'姓名': ['Alice', 'Bob', None, 'Charlie'],'联系电话': ['123-456-7890', '123 456 7891', '123.456.7892', '123-456-7893'],'账户余额': ['100$', '200$', '300$', '四百元']
}customers_df = pd.DataFrame(customer_data)
print(customers_df)

数据清洗

进行数据清洗,包括处理重复记录、填补缺失值和纠正格式错误。

# 去除重复记录
customers_df.drop_duplicates(subset='客户ID', keep='first', inplace=True)# 填补缺失的姓名
customers_df['姓名'].fillna('未知', inplace=True)# 格式纠正
# 统一电话号码格式
customers_df['联系电话'] = customers_df['联系电话'].str.replace('[ .]', '-', regex=True)# 转换账户余额为统一格式
def standardize_balance(balance):return balance.replace('$', '').replace('元', '').replace('四百', '400')customers_df['账户余额'] = customers_df['账户余额'].apply(standardize_balance).astype(int)print(customers_df)

数据验证

对清洗后的数据进行进一步的验证,确保数据的准确性和完整性。

# 数据验证
def validate_customer_record(record):if not record['联系电话'].count('-') == 2 or record['账户余额'] < 0:return '无效'return '有效'customers_df['记录状态'] = customers_df.apply(validate_customer_record, axis=1)
print(customers_df)

通过这个案例,电信公司能够有效地清洗其客户数据,提高数据质量,从而支持更好的客户管理和业务决策。这个过程包括去除重复记录、填补缺失值、纠正数据格式和验证数据质量,是确保高数据质量的重要步骤。

3.2.3 拓展案例 1:零售企业的库存数据验证

拓展案例 1:零售企业的库存数据验证

在这个案例中,我们将展示一家零售企业如何使用 Python 来验证和监控其库存数据,确保数据的准确性和及时性。

数据准备

假设我们有一份包含零售企业库存信息的数据集,数据中可能包含错误或不一致的信息。

import pandas as pd# 示例库存数据
inventory_data = {'产品ID': ['P100', 'P101', 'P102', 'P103'],'库存数量': [50, -10, 30, '二十'],'库存警戒线': [20, 15, 10, 5]
}inventory_df = pd.DataFrame(inventory_data)
print(inventory_df)

数据验证

进行数据验证,包括库存数量的有效性检查和库存警戒线的比较。

# 库存数量的有效性检查和格式纠正
def validate_and_correct_inventory(inventory):try:# 尝试转换为整数inventory = int(inventory)except ValueError:# 处理中文数字inventory = inventory.replace('二十', '20')inventory = int(inventory)return max(inventory, 0)  # 确保库存不为负数inventory_df['库存数量'] = inventory_df['库存数量'].apply(validate_and_correct_inventory)# 比较库存数量和库存警戒线
def check_inventory_status(row):if row['库存数量'] < row['库存警戒线']:return '低于警戒线'return '正常'inventory_df['库存状态'] = inventory_df.apply(check_inventory_status, axis=1)
print(inventory_df)

库存监控

对库存数据进行监控,确保库存水平在合理范围内。

# 库存监控
def monitor_inventory(df):low_inventory_items = df[df['库存状态'] == '低于警戒线']if not low_inventory_items.empty:print("以下产品库存低于警戒线:\n", low_inventory_items)else:print("所有产品库存均在正常范围内。")monitor_inventory(inventory_df)

通过这个案例,零售企业能够有效地验证和监控其库存数据,确保库存信息的准确性和及时性。这对于避免库存短缺或过剩、优化库存管理和支持销售决策至关重要。

3.2.4 拓展案例 2:医疗机构的患者数据整合

在这个案例中,我们将展示一家医疗机构如何使用 Python 来整合来自不同系统的患者数据,以提高数据一致性和完整性。

数据准备

假设我们有两个不同系统的患者数据集,每个系统的数据格式略有不同。

import pandas as pd# 示例数据 - 系统A
data_A = {'患者编号': ['PA01', 'PA02', 'PA03'],'姓名': ['Alice', 'Bob', 'Charlie'],'年龄': [28, 34, 45]
}# 示例数据 - 系统B
data_B = {'ID': ['PB01', 'PB02', 'PB03'],'患者姓名': ['David', 'Eve', 'Frank'],'生日': ['1992-01-01', '1986-05-12', '1975-08-23']
}df_A = pd.DataFrame(data_A)
df_B = pd.DataFrame(data_B)

数据整合

合并来自两个不同系统的数据,同时处理字段名称和格式的不一致性。

# 标准化字段名和格式
df_B.rename(columns={'ID': '患者编号', '患者姓名': '姓名', '生日': '年龄'}, inplace=True)
df_B['年龄'] = pd.to_datetime(df_B['年龄']).dt.year
df_B['年龄'] = 2023 - df_B['年龄']  # 假设当前年份为2023年# 合并数据集
combined_df = pd.concat([df_A, df_B], ignore_index=True)
print(combined_df)

数据清洗

对整合后的数据进行清洗,确保数据的一致性和准确性。

# 检查并清洗缺失或不一致的数据
combined_df.fillna('未知', inplace=True)# 检查年龄字段的合理性
combined_df['年龄'] = combined_df['年龄'].apply(lambda x: x if x > 0 and x < 120 else '未知')
print(combined_df)

数据验证和分析

对整合后的数据进行验证,并进行简单的数据分析。

# 验证数据的有效性
def validate_patient_record(record):if record['姓名'] == '未知' or record['年龄'] == '未知':return '无效'return '有效'combined_df['记录状态'] = combined_df.apply(validate_patient_record, axis=1)# 简单的数据分析,例如,统计不同年龄段的患者数量
age_distribution = combined_df['年龄'].value_counts()
print("年龄分布:\n", age_distribution)

通过这个案例,医疗机构能够有效地整合并清洗来自不同源的患者数据,创建一个统一且准确的患者健康记录系统。这对于提供连贯的患者护理、支持医疗决策和确保数据一致性至关重要。

通过这些案例,我们可以看到数据质量控制在不同领域的应用是多样化的。无论是电信、零售还是医疗行业,高数据质量的维护对于支持有效的业务决策和运营至关重要。Python 在这些场景中作为一个强大的数据处理工具,发挥着关键的作用。

3.3 数据质量监测与改进

在这一节中,我们将探讨数据质量监测与改进的关键概念,并通过实际案例展示如何应用这些概念来提升数据质量。

3.3.1 基础知识

深入理解数据质量监测与改进的基础知识是确保持续维持高质量数据的关键。这一过程不仅涉及定期的数据质量评估,还包括对数据处理流程的持续优化。

  1. 数据质量评估

    • 质量指标:定义和计算关键的数据质量指标,如准确率、完整率、一致性、及时性等。
    • 评估周期:设定定期评估数据质量的周期,例如,每月或每季度。
  2. 数据质量报告

    • 报告生成:创建数据质量报告,提供关于数据质量状态的详细概览。
    • 问题识别:通过报告识别数据质量问题,如异常值、趋势的变化等。
  3. 数据问题根源分析

    • 问题诊断:分析数据问题的根本原因,如系统缺陷、流程漏洞或外部因素。
    • 影响评估:评估数据问题对业务的影响,确定解决问题的优先级。
  4. 改进措施

    • 流程优化:根据根源分析结果,改进数据管理和处理流程。
    • 技术和工具的应用:应用适当的技术和工具来解决特定的数据问题。
  5. 持续监控与迭代

    • 自动化监控:利用自动化工具进行实时或定期的数据质量监控。
    • 迭代改进:根据监控结果和业务需求的变化,持续调整和优化数据治理策略。
  6. 利益相关者沟通

    • 内部沟通:与内部团队沟通数据质量问题及其影响,确保团队成员对数据质量的认识和重视。
    • 外部报告:必要时,向外部利益相关者(如监管机构、合作伙伴)报告数据质量情况。
  7. 文化和教育

    • 数据质量文化:培养组织内部重视数据质量的文化。
    • 培训与教育:提供数据质量管理方面的培训,提升团队的相关技能。

通过实施这些基础知识,组织可以确保其数据质量监测和改进过程是全面的、有效的,并且能够适应不断变化的业务需求和技术环境。

3.3.2 重点案例:金融机构的交易数据监测

在这个案例中,我们将展示一家金融机构如何使用 Python 来实现交易数据的实时监测,以确保数据质量并识别潜在的欺诈行为。

数据准备

假设我们有一份包含多种交易信息的数据集,其中可能包含异常交易。

import pandas as pd# 示例交易数据
transaction_data = {'交易ID': ['TX001', 'TX002', 'TX003', 'TX004'],'交易日期': ['2023-09-01', '2023-09-01', '2023-09-02', '2023-09-02'],'交易金额': [500, 20000, 1500, 30000],'客户ID': ['C100', 'C101', 'C100', 'C102'],'交易类型': ['存款', '取款', '存款', '取款']
}transactions_df = pd.DataFrame(transaction_data)
transactions_df['交易日期'] = pd.to_datetime(transactions_df['交易日期'])
print(transactions_df)

数据监测

实时监测交易数据,特别是寻找异常高额交易,这可能表明潜在的欺诈行为。

# 实时监测函数
def monitor_transactions(df):high_value_threshold = 10000  # 定义高额交易阈值suspicious_transactions = df[df['交易金额'] > high_value_threshold]if not suspicious_transactions.empty:print("检测到可疑高额交易:\n", suspicious_transactions)else:print("未检测到可疑交易")monitor_transactions(transactions_df)

数据质量报告

定期生成数据质量报告,评估交易数据的准确性和完整性。

# 生成数据质量报告
def generate_quality_report(df):report = {"总交易数": len(df),"可疑交易数": len(df[df['交易金额'] > 10000]),"平均交易金额": df['交易金额'].mean()}return reportquality_report = generate_quality_report(transactions_df)
print("数据质量报告:\n", quality_report)

欺诈预防分析

利用监测结果预防潜在的欺诈行为,例如,通过进一步分析可疑交易的模式。

# 欺诈预防分析
def fraud_prevention_analysis(df):suspicious_df = df[df['交易金额'] > 10000]if not suspicious_df.empty:# 这里可以进行更深入的分析,例如模式识别、异常行为分析等print("进行深入分析的可疑交易:\n", suspicious_df)fraud_prevention_analysis(transactions_df)

通过这个案例,金融机构能够利用 Python 实现有效的交易数据监测,及时识别和响应可疑交易,从而提升数据质量和防范欺诈风险。这些分析对于确保交易安全和维持机构声誉至关重要。

3.3.3 拓展案例 1:医院的患者数据质量改进

在这个案例中,我们将展示一家医院如何使用 Python 来提升其电子健康记录系统中患者数据的质量。

数据准备

假设我们有一份包含患者基本信息和医疗记录的数据集,数据中可能存在缺失值和不一致的信息。

import pandas as pd# 示例患者数据
patient_data = {'患者ID': ['P001', 'P002', 'P003', 'P004'],'姓名': ['Alice', None, 'Charlie', 'Diana'],'年龄': [28, 34, None, 40],'最后访问日期': ['2023-09-01', '2023-08-15', '2023-09-10', '']
}patients_df = pd.DataFrame(patient_data)
patients_df['最后访问日期'] = pd.to_datetime(patients_df['最后访问日期'], errors='coerce')
print(patients_df)

数据清洗

对数据进行清洗,处理缺失值和格式错误。

# 填补缺失的姓名和年龄
patients_df['姓名'].fillna('未知', inplace=True)
patients_df['年龄'].fillna(patients_df['年龄'].mean(), inplace=True)  # 用平均年龄填补# 处理日期格式错误
patients_df['最后访问日期'].fillna(pd.to_datetime('today'), inplace=True)print(patients_df)

数据质量监测

定期监测数据质量,特别是关注重要字段的完整性和准确性。

# 数据质量监测函数
def monitor_patient_data_quality(df):missing_names = df[df['姓名'] == '未知']missing_dates = df[pd.isnull(df['最后访问日期'])]if not missing_names.empty or not missing_dates.empty:print("存在缺失的重要信息")else:print("所有重要信息均完整")monitor_patient_data_quality(patients_df)

数据质量报告

定期生成数据质量报告,以评估改进措施的效果。

# 生成数据质量报告
def generate_patient_data_quality_report(df):report = {"总患者数": len(df),"缺失姓名数": len(df[df['姓名'] == '未知']),"缺失最后访问日期数": len(df[pd.isnull(df['最后访问日期'])])}return reportquality_report = generate_patient_data_quality_report(patients_df)
print("患者数据质量报告:\n", quality_report)

通过这个案例,医院能够有效地改进电子健康记录系统中的患者数据质量,从而提供更准确和完整的医疗服务。定期的数据质量监测和报告有助于及时发现和解决数据问题,确保患者信息的准确性和完整性。

3.3.4 拓展案例 2:制造企业的库存数据优化

在这个案例中,我们将展示一家制造企业如何使用 Python 来优化其库存数据管理,减少过剩和短缺。

数据准备

假设我们有一份包含库存信息的数据集,数据中可能包含过时或不准确的库存记录。

import pandas as pd# 示例库存数据
inventory_data = {'产品ID': ['PRD001', 'PRD002', 'PRD003', 'PRD004'],'库存数量': [150, 500, 0, 30],'安全库存水平': [50, 200, 100, 20]
}inventory_df = pd.DataFrame(inventory_data)
print(inventory_df)

库存水平分析

对库存数据进行分析,识别库存过剩或短缺的问题。

# 库存水平分析
def analyze_inventory_levels(df):df['库存状态'] = df.apply(lambda row: '过剩' if row['库存数量'] > row['安全库存水平'] * 2 else ('短缺' if row['库存数量'] < row['安全库存水平'] else '正常'), axis=1)return dfanalyzed_inventory = analyze_inventory_levels(inventory_df)
print(analyzed_inventory)

预测模型

开发预测模型来预测未来的库存需求,基于销售趋势和季节性调整库存策略。

# 假设我们有历史销售数据,这里简化为直接使用库存数据作为演示
def predict_inventory_demand(df):# 这里的模型简化为:如果产品经常短缺,预测需求增加20%,如果经常过剩,预测减少20%df['预测库存需求'] = df.apply(lambda row: row['库存数量'] * 1.2 if row['库存状态'] == '短缺' else (row['库存数量'] * 0.8 if row['库存状态'] == '过剩' else row['库存数量']), axis=1)return dfpredicted_inventory = predict_inventory_demand(analyzed_inventory)
print(predicted_inventory)

库存优化建议

根据分析和预测结果,提供库存优化建议。

# 提供库存优化建议
def provide_inventory_optimization_advice(df):for index, row in df.iterrows():advice = "增加库存" if row['库存状态'] == '短缺' else ("减少库存" if row['库存状态'] == '过剩' else "保持当前水平")print(f"产品 {row['产品ID']}{advice}")provide_inventory_optimization_advice(predicted_inventory)

通过这个案例,制造企业能够有效地分析和预测其库存需求,优化库存管理,减少库存短缺和过剩的问题。这对于降低运营成本、提高效率和客户满意度至关重要。利用 Python 进行数据分析和预测模型的开发,提供了一个高效且可靠的方法来支持库存优化决策。

通过这些案例,我们可以看到数据质量监测和改进在不同行业中的应用和重要性。无论是金融、医疗还是制造行业,高质量的数据都是运营成功的基石。Python 作为一种强大的数据处理和分析工具,在这些过程中发挥着至关重要的作用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/264330.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OSCP靶场--Nickel

OSCP靶场–Nickel 考点(1.POST方法请求信息 2.ftp&#xff0c;ssh密码复用 3.pdf文件密码爆破) 1.nmap扫描 ┌──(root㉿kali)-[~/Desktop] └─# nmap 192.168.237.99 -sV -sC -p- --min-rate 5000 Starting Nmap 7.92 ( https://nmap.org ) at 2024-02-22 04:06 EST Nm…

vue2和vue3 setup beforecreate create生命周期时间比较

创建一个vue程序&#xff0c;vue3可以兼容Vue2的写法&#xff0c;很流畅完全没问题 写了一个vue3组件 <template><div></div> </template><script lang"ts"> import {onMounted} from vue export default{data(){return {}},beforeCr…

FPGA之进位逻辑

进位逻辑&#xff08;Carry Logic&#xff09;Slice 中除了LUT&#xff0c;寄存器&#xff0c;触发器&#xff0c;锁存器外&#xff0c;还提供了专用的快速超前进位逻辑&#xff0c;可以在slice 中执行快速算术加法和减法。CLB 中的专用进位逻辑提高了算术功能&#xff08;如加…

开源的表单设计器拥有什么显著特点?

开源的表单设计器的特点是什么&#xff1f;广州流辰信息是专业研发低代码技术平台的服务商&#xff0c;可以为企业提供系统开发、数据治理、数据分析各环节技术和方案支撑。为了帮助大家了解开源的表单设计器的相关优势特点&#xff0c;小编将为大家做一个详细介绍。 什么是开源…

3分钟快速实现串口PLC远程下载程序操作说明

3分钟快速实现串口PLC远程下载程序操作说明 搜索蓝蜂物联网官网&#xff0c;即可免费领取样机使用&#xff01;&#xff01;先到先得&#xff01;&#xff01;&#xff01; 一. 适用产品型号 其余型号网关此功能正在开发中&#xff0c;敬请期待。 二. 远程下载功能使用流程 …

服务端测试开发必备技能:Mock测试

什么是mock测试 Mock 测试就是在测试活动中&#xff0c;对于某些不容易构造或者不容易获取的数据/场景&#xff0c;用一个Mock对象来创建以便测试的测试方法。 Mock测试常见场景 无法控制第三方系统接口的返回&#xff0c;返回的数据不满足要求依赖的接口还未开发完成&#…

积分商城管理系统的设计与实现

积分商城管理系统的设计与实现 获取源码——》公主号&#xff1a;计算机专业毕设大全

【笔记】【电子科大 离散数学】 2.命题

文章目录 数理逻辑定义 命题定义不是命题的例子 原子命题和复合命题定义约定 命题联结词否定联结词定义例子真值表 合取联结词定义例子真值表 析取联结词定义例子 蕴含联结词定义例子真值表 等价联结词定义例子真值表 命题符号化及其应用速查表格优先级复合命题符号化布尔检索演…

Sora - 探索AI视频模型的无限可能

文章目录 每日一句正能量前言技术解析应用场景未来展望伦理与创意用户体验与互动后记 每日一句正能量 . 一个人&#xff0c;如果没有经受过投资失败的痛楚&#xff0c;又怎么会看到绝望之后的海阔天空。很多时候&#xff0c;经历了人生中最艰难的事&#xff0c;反而锻造了最坚强…

Mybatis-Plus为数据表字段自动填充创建时间和更新

遇到的问题 练习项目时遇到create_time和update_time数据表字段需要填充时想到每次都要手写代码有点繁琐而且直觉告诉我肯定有办法自动填充。通过查阅相关资料&#xff0c;最终也是成功达成目标。 解决步骤 1.创建自定义类DateAutoFillHandler实现MetaObjectHandler接口 Co…

移动端自动化常用的元素定位工具 介绍

在移动端自动化测试和开发中&#xff0c;元素定位是非常关键的一步。以下是一些常用的工具和技术来帮助开发者或测试工程师在移动设备上定位元素&#xff1a; 1. **UiAutomator**: - **UiAutomator** 是 Android 官方提供的自动化测试框架。它可以用来编写测试脚本&…

如何在三维地球上快速拉白模以辅助建筑规划设计?

通过以下方法可以在三维地球上快速拉白模以辅助建筑规划设计。 方法/步骤 下载三维地图浏览器 http://www.geosaas.com/download/map3dbrowser.exe&#xff0c;安装完成后桌面上出现”三维地图浏览器“图标。 2、双击桌面图标打开”三维地图浏览器“ 3、点击“要素标绘”菜…

基于相位的运动放大:如何检测和放大难以察觉的运动(01/2)

基于相位的运动放大&#xff1a;如何检测和放大难以察觉的运动 目录 一、说明二、结果的峰值三、金字塔背景3.1 可操纵金字塔3.2 亚倍频程复数可控金字塔 四、基本方针4.1 1D 问题陈述4.2 一维方法4.3 实际实施说明 五、放大倍率的限制5.1 空间支持的影响5.2 频带的影响 六、推…

React18源码: React调度中的3种优先级类型和Lane的位运算

优先级类型 React内部对于优先级的管理&#xff0c;贯穿运作流程的4个阶段&#xff08;从输入到输出&#xff09;&#xff0c;根据其功能的不同&#xff0c;可以分为3种类型&#xff1a; 1 &#xff09;fiber优先级(LanePriority) 位于 react-reconciler包&#xff0c;也就是L…

掌握Docker:让你的应用轻松部署和管理

文章目录 一、引言&#xff08;为什么要学习docker&#xff1f;&#xff09;1.1 环境不一致1.2 隔离性1.3 弹性伸缩1.4 学习成本 二、Docker介绍2.1 Docker的由来2.2 什么是Docker2.3 为什么要用Docker2.3.1 虚拟机2.3.2 Linux容器 2.4 Docker与传统虚拟机的区别2.5 Docker的思…

C++关键词auto详解

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、小思考 随着我们对于C的不断学习&#xff0c;遇到的程序越来越复杂&#xff0c;程序中用到的类型也越来越复杂…

Adobe将类ChatGPT集成到PDF中

2月21日&#xff0c;全球多媒体巨头Adobe在官网宣布&#xff0c;推出生成式AI助手AI Assistant&#xff0c;并将其集成在Reader 和Acrobat 两款PDF阅读器中。 据悉&#xff0c;AI Assistant的功能与ChatGPT相似&#xff0c;可以基于PDF文档提供摘要、核心见解、基于文档内容&a…

Android 内存优化内存泄漏处理

一:匿名内部类/非静态内部类 匿名内部类的泄漏原因&#xff1a;匿名内部类会隐式地持有外部类的引用.当外部类被销毁时&#xff0c;内部类并不会自动销毁&#xff0c;因为内部类并不是外部类的成员变量&#xff0c; 它们只是在外部类的作用域内创建的对象&#xff0c;所以内部…

canvas水波纹效果,jquery鼠标水波纹插件

canvas水波纹效果&#xff0c;jquery鼠标水波纹插件 效果展示 jQuery水波纹效果&#xff0c;canvas水波纹插件 HTML代码片段 <div class"scroll04wrap"><h3>发展历程</h3><div class"scroll04"><p>不要回头&#xff0c;一…

java面试题之mybatis篇

什么是ORM&#xff1f; ORM&#xff08;Object/Relational Mapping&#xff09;即对象关系映射&#xff0c;是一种数据持久化技术。它在对象模型和关系型数据库直接建立起对应关系&#xff0c;并且提供一种机制&#xff0c;通过JavaBean对象去操作数据库表的数据。 MyBatis通过…