python学习3

大家好,今天又来更新python学习篇了。本次的内容比较简单,时描述性统计代码,直接给出所有代码,如下:

import pandas as pd
from scipy.stats import fisher_exact
from fuzzywuzzy import fuzz
from fuzzywuzzy import process
import re
base_info = pd.read_excel("./data/附件1.xlsx", index_col=0)
sale_info = pd.read_excel("./data/附件2.xlsx")
sale_info['销售日期']=pd.to_datetime(sale_info['销售日期'])data=sale_info.join(base_info,on="单品编码")
data["销售额(元)"]=data["销量(千克)"]*data["销售单价(元/千克)"]print("--------------------------------------------")
print("统计打折销售情况")
print(data["是否打折销售"].groupby([data["是否打折销售"],data["分类名称"]]).count())print("--------------------------------------------")
print("统计退货情况")
print(data["销售类型"].groupby([data["销售类型"],data["分类名称"]]).count())print("--------------------------------------------")
print("执行Fisher 精确性检验")
print(data["销售类型"].groupby([data["销售类型"],data["是否打折销售"]]).count())
table=[[457,4],[830680,47362]]
result=fisher_exact(table,alternative='two-sided')
print("Fisher 精确性检验结果: ")
print("p-value:",result.pvalue)
print("statistic:",result.statistic)print("--------------------------------------------")
print("执行Fisher 精确性检验")
names=base_info["单品名称"].tolist()
print(names)print("--------------------------------------------")
print("执行字符串匹配")
strings=names
threshold=80
similar_strings={}
for string in strings:best_match=process.extractOne(string,[s for s in strings if s not in [string]],scorer=fuzz .ratio)if best_match[1]>=threshold and best_match[0]!=string and best_match[0][:2]==string[:2]:if re.search(r'\(\d+\)',best_match[0]) and re.search(r'\(\d+\)',string):similar_strings[string]=best_match[0]for original,similar in similar_strings.items():print(f"'{original}'和'{similar}'")

输出结果如下: 

 对于其中的一些代码,在此解释:

代码1

第十五行

print(data["是否打折销售"].groupby([data["是否打折销售"],data["分类名称"]]).count())

这行代码使用 pandas 的 groupby() 方法和 count() 方法对 data 数据中的 "是否打折销售" 和 "分类名称" 列进行分组,并对每个分组计数。

groupby() 方法将 DataFrame 根据指定的列名进行分组,返回一个 GroupBy 对象。在这里,我们通过传递表示 "是否打折销售" 和 "分类名称" 的两个列名来分组 data DataFrame。

count() 方法用于计算每组中唯一值的数量。在这里,它返回唯一组合的数量,即 (是否打折销售, 分类名称) 组合的数量。

通过在 groupby() 方法中传递多个列名,我们可以获取多个类别之间的交叉计数。

代码2

table=[[457,4],[830680,47362]]
result=fisher_exact(table,alternative='two-sided')

这段代码是使用 `fisher_exact()` 函数对给定的二维表格 `table` 进行 Fisher 精确性检验,并计算 p-value 和统计量,结果将存储在变量 `result` 中。

- `table=[[457,4],[830680,47362]]` 表示给出一个二维表格,其中第一行包含两个元素 `[457,4]`,第二行包含两个元素 `[830680,47362]`;
- `fisher_exact(table, alternative='two-sided')` 表示使用 Fisher 精确性检验对给定的二维表格 `table` 进行检验。`alternative='two-sided'` 表示使用双侧检验。

执行这段代码将会得到 Fisher 精确性检验的结果,包括 p-value 和统计量。具体而言,`result` 变量中将包含一个二元组,第一个元素表示 p-value,第二个元素表示统计量。

代码3

for string in strings:best_match=process.extractOne(string,[s for s in strings if s not in [string]],scorer=fuzz .ratio)if best_match[1]>=threshold and best_match[0]!=string and best_match[0][:2]==string[:2]:if re.search(r'\(\d+\)',best_match[0]) and re.search(r'\(\d+\)',string):similar_strings[string]=best_match[0]for original,similar in similar_strings.items():print(f"'{original}'和'{similar}'")

这段代码是一个字符串匹配的算法,它会找出与给定字符串相似的其他字符串,并将结果打印出来。

代码的执行过程如下:

1. 对于 `strings` 列表中的每个字符串,依次执行以下步骤:
2. 使用 `process.extractOne()` 函数找到与当前字符串 `string` 最相似的字符串。该函数会在剩余的字符串列表中进行搜索,返回一个二元组,其中第一个元素是最佳匹配的字符串,第二个元素是匹配的分数。
3. 判断最佳匹配的分数是否大于等于设定的阈值 `threshold`,并且最佳匹配的字符串不等于当前字符串 `string`,且最佳匹配的字符串和当前字符串的前两个字符相同。
4. 若上述条件满足,则继续执行下一步。
5. 判断最佳匹配的字符串和当前字符串都是否包含形如 `(数字)` 的字符串。
6. 若上述条件满足,则将原始字符串和相似字符串的对应关系添加到 `similar_strings` 字典中。
7. 遍历 `similar_strings` 字典中的每一项,将原始字符串和相似字符串的对应关系打印出来。

总结来说,该代码的目的是找出在给定阈值和条件下,符合相似性要求的字符串对,并将它们打印出来。这样可以帮助找出在字符串中存在相似内容的情况,并进一步进行处理或分析。

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

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

相关文章

高性能计算HPC与统一存储

高性能计算(HPC)广泛应用于处理大量数据的复杂计算,提供更精确高效的计算结果,在石油勘探、基因分析、气象预测等领域,是企业科研机构进行研发的有效手段。为了分析复杂和大量的数据,存储方案需要响应更快&…

【兔子王赠书第12期】赠ChatGPT中文范例的自然语言处理入门书

文章目录 写在前面自然语言处理图书推荐图书简介编辑推荐 推荐理由粉丝福利写在后面 写在前面 小伙伴们好久不见吖,本期博主给大家推荐一本入门自然语言处理的经典图书,一起来看看吧~ 自然语言处理 自然语言处理(Natural Language Process…

【面向对象】C++/python/java的多态比较

一、面向对象的主要特点 封装:封装是把数据和操作数据的方法绑定在一起,对数据的访问只能通过已定义的接口。这可以保护数据不被外部程序直接访问或修改,增强数据的安全性。继承:继承是一种联结类的层次模型,并且允许…

机器学习 | KNN算法

一、KNN算法核心思想和原理 1.1、怎么想出来的? 近朱者赤,近墨者黑! 距离决定一切、民主集中制 1.2、基本原理 —— 分类 k个最近的邻居 民主集中制投票分类表决与加权分类表决 1.3、基本原理 —— 回归 计算未知点的值决策规则不同均值法与…

【UML】第5篇 UML中的视图和图

目录 一、视图和图 二、图的种类 2.1 结构图 2.2 行为图 图是UML中最重要的概念了,起码我是这么认为。 上篇关于低代码的文章,我也说了,未来也许AI编码,我们更重要的工作,是能够为业务进行建模,拆解&a…

mybatis plus 公共字段自动填充createBy updateBy

一、公共字段自动填充 需求:好多表公共的字段,赋值逻辑也相同,不用每次为其赋值,‘拦截器’统一赋值。 1. 在新增数据时,需要设置创建时间、创建人、修改时间、修改人等字段,在编辑数据时需要设置修改时间…

FL Studio21.2.2963水果音乐软件安装

FL Studio是功能强大的音乐制作解决方案,使用旨在为用户提供一个友好完整的音乐创建环境,让您能够轻松创建、管理、编辑、混合具有专业品质的音乐,一切的一切都集中在一个软件中,只要您想,只要您需要,它总能…

深兰科技入选财联社“2023科创好公司”榜单

12月13日,“2023科创好公司”评选榜单正式公布,深兰科技成功入选,获得该榜单中“新能源汽车及自动驾驶”赛道的“科创好公司”称号。 “科创好公司”榜评选是由财联社及《科创板日报》联合打造的一级市场投后服务体系中的重要活动项目&#x…

Axure 9基本元件,表单及表格元件简介,表单案例

目录 一.基本元件 1.元件基本介绍 2.基本元件的使用 二.表单及表格元件 三.表单案例 四.简单简历绘制 一.基本元件 1.元件基本介绍 概述 - 在Axure RP中,元件是**构建原型图的基础模块**。 将元件从元件库里拖拽到画布中,即可添加元件到你的原型…

什么店生意好?C++采集美团商家信息做数据分析

最近遇到几个朋友,想要一起合伙投资一个实体店,不问类型,就看哪类产品相对比较受欢迎。抛除地址位置,租金的影响,我们之谈产品。因此,我熬了几个通宵,写了这么一段爬取美团商家商品信息的数据并…

如何在 Windows 10/11 上恢复永久删除的文件夹

如果您曾经错误地删除过某个文件夹,您就会知道随之而来的恐慌。您认为当您在某些内容上单击“删除”时,它就会永远消失。但情况并非总是如此。您可以使用几种不同的方法来恢复已删除的文件夹 。 本指南将向您展示如何在 Windows 10/11 上恢复永久删除的…

Axure RP - 交互设计的强大引擎

目录 前言 1. 交互设计:连接用户与产品的纽带 2. 情景设计:预测用户行为的未来 3. 演示和共享:让设计活起来 我的其他博客 前言 在数字化时代,用户体验的重要性日益突显,而交互设计成为塑造产品与用户互动的关键。…

colmap三维重建核心逻辑梳理

colmap三维重建核心逻辑梳理 1. 算法流程束流2. 初始化3. 重建主流程 1. 算法流程束流 重建核心逻辑见 incremental_mapper.cc 中 IncrementMapperController 中 Reconstruct 初始化变量和对象判断是否有初始重建模型,若有,则获取初始重建模型数量&am…

基于Python实现的一个书法字体风格识别器源码,通过输入图片,识别出图片中的书法字体风格,采用Tkinter实现GUI界面

项目描述 本项目是一个书法字体风格识别器,通过输入图片,识别出图片中的书法字体风格。项目包含以下文件: 0_setting.yaml:配置文件,包含书法字体风格列表、图片调整大小的目标尺寸等设置。1_Xy.py:预处理…

SourceTree 免登录跳过初始设置

用于Windows和Mac的免费Git客户端。 Sourcetree简化了如何与Git存储库进行交互,这样您就可以集中精力编写代码。通过Sourcetree的简单Git GUI可视化和管理存储库。 SourceTree 安装之后需要使用账号登陆以授权,以前是可以不登陆的,但是现在是…

neuq-acm预备队训练week 10 P1129 [ZJOI2007] 矩阵游戏

题目描述 小 Q 是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏――矩阵游戏。矩阵游戏在一个 nn 黑白方阵进行(如同国际象棋一般,只是颜色是随意的)。每次可以对该矩阵进行两种操作: 行…

为什么在Android中需要Context?

介绍 在Android开发中,Context是一个非常重要的概念,但是很多开发者可能并不清楚它的真正含义以及为什么需要使用它。本文将详细介绍Context的概念,并解释为什么在Android应用中需要使用它。 Context的来源 Context的概念来源于Android框架…

Win32程序与MFC程序构建顺序梳理

Windows程序的生成顺序 Windows窗口的生命周期 初始化操作 从WinMain函数开始,注册窗口;创建窗口; 调用CreateWindow,为程序建立了一个窗口,作为程序的屏幕 舞台。CreateWindow产生窗口之后会送出WM_CREATE消息给窗口函数&…

新手运行若依项目|若依项目各部分介绍|并修改自己需要的页面

新手运行若依项目|若依项目各部分介绍|并修改自己需要的页面 文章目录 新手运行若依项目|若依项目各部分介绍|并修改自己需要的页面前言IEDA如何运行若依项目若依项目目录简介ruo-yi common工具类ruoyi-framework 框架核心其他部分ruo一admin后台服务通用配置 application.yml数…

关于“Python”的核心知识点整理大全26

目录 10.3.9 决定报告哪些错误 10.4 存储数据 10.4.1 使用 json.dump()和 json.load() number_writer.py number_reader.py 10.4.2 保存和读取用户生成的数据 对于用户生成的数据,使用json保存它们大有裨益,因为如果不以某种方式进行存储&#xf…