项目实战 | 使用python分析Excel销售数据(用groupby)

news2024/11/27 6:41:41

项目实战 | 使用python分析Excel销售数据

本文目录:

零、00时光宝盒

一、提出问题

二、理解数据

2.1、安装python读取excel文件的库

2.2、查看excel表的字段名和前几行记录

2.3、查看excel表结构 

2.4、查看索引

2.5、查看每一列的列表头内容

2.6、查看每一列数据统计数目

2.7、看字段类型

2.8、查看数据信息

三、数据清洗

3.1、选择子集

3.2、列名重命名

3.3、删除重复值

3.4、缺失值处理

3.5、一致化处理

1)销售金额由字符串转换为数值(浮点型)

2)将日期字符串转换为日期数据类型

3.6、数据排序

1)进行升序排列

2)进行降序排列

3)按指定列进行排序

3.7、异常值处理

1)查看是否存在数值异常

2)设定条件,由系统判定真假

四、数据分析统计

4.1、各销售代表的销售量

4.2、统计各类别商品的平均价并保留2位小数

4.3、统计各商品的销售额

4.4、统计各商品各地的销售情况

4.5、统计8月各代表的销售额

4.6、统计下半年各月的销售额


零、00时光宝盒

 2ab463de26a541818271efa176656ae6.png

life is impermanent,cherish the moment
人生无常,珍惜当下

once there was a gathering of three old friends
从前有三个老朋友经常聚会
they were all scholars leading busy lives,but they made it a point to meet once a year to make sure they would always stay in touch with one another。
他们都是学者,过着忙碌的生活,但他们每年都会见面一次,以确保他们始终保持联系。

this time the gathering felt different,they were all getting old and starting to feel their age
这次聚会感觉不太一样了,他们都在变老,开始感觉到自己的年龄

sensing this the first scholar remarked we are all here together this year enjoying each other's company
第一位学者察觉到这一点,说:我们今年都在这里,享受彼此的陪伴
but who can say if we will all be able to come back and be together again next year
但谁能说我们明年是否还能回来再聚一堂

the second scholar laughed
其他两个人听到都笑了
next year I think you may be looking too far ahead and assuming too much
明年?我觉得你可能想得太远了或者假设太多了
today i am alive,but who can say if tomorrow i will open my eyes to greet another day
今天我还活着,但谁能说明天我会睁开眼睛迎接新的一天

they turned to the third scholar who had been quiet
他们转向一直沉默的另一个老人
he looked up at them thoughtfully and said tomorrow
他抬头若有所思地看着他们说,明天?
my friends as i sit here with you,i do not know if each breath i draw will be my last,who can say for certain if one breath will be followed by another
我的朋友们,当我和你们坐在一起时,我不知道我的每一次呼吸是否会是我的最后一次呼吸,谁能确定一次呼吸之后是否会有另一次呼吸

this story is short but deeply meaningful
这个故事很短但意义深远
it points to how uncertain and impermanent life
它指出了生命是多么的不确定和无常
the first scholar thought about life in years 
第一位老人是以年为单位去思考人生
like many of us,we usually count the number of years we have been alive,thinking about the time we have left
像我们很多人一样,我们通常会数自己活了多少年,计算着我们剩下多少时间
the truth is 
事实是
we might not have many years or even one year left
我们可能没有多少年了,甚至一年的时间也没有了
life is not just about counting years or days
生活不仅仅是按年日来计算
it moves from one moment to the next
而是从某一个时刻移动到下一个时刻
from one breath to the next
从一口气到下一口气
we don't really know how many minutes or seconds we still have
我们真的不知道,我们还剩下多少分钟,或者几秒钟
so the people who are important to you
所以对你很重要的人
be thankful for them now,not tomorrow or next year
现在感谢他们,不要等明天或明年
tell them you appreciate them now for being in your life and be grateful for having a family too
告诉他们你现在感谢他们出现在你的生活中,也感谢有一个家庭


 

  每个人活着都不容易,珍惜每次遇见,不只是口头,而是在你需要帮助时,我愿意伸出手并努力去办到。

 逆境清醒

2024.4.7

7f8eafc867aa425cab7d368ee0eb4dd8.gif

一、提出问题

用groupby 统计xlsx文件

  1. 各销售代表的销售量
  2. 统计各类别商品的平均价并保留2位小数
  3. 统计各商品的销售额
  4. 统计各商品各地的销售情况
  5. 统计8月各代表的销售额
  6. 统计下半年各月的销售额

  首先,导入Pandas库和要操作的Excel文件。

  例如,为验证和测试,建立了一个名为"pandas数据分析.xlsx"的Excel文件,它包含了一些数据,结构如下:

二、理解数据

代码测试环境:python 3、Jupyterlab v3.4.3

2.1、安装python读取excel文件的库

!pip install openpyxl --user

105276310ab942e2805a8831cfcea963.png

2.2、查看excel表的字段名和前几行记录

导入Pandas库和要操作的Excel文件。


import pandas as pd
FileNameStr='work/202404/pandas数据分析.xlsx'
#使用pandas的read_excel函数读取Ecxcel数据
salesDF=pd.read_excel(FileNameStr,sheet_name='Sheet2',dtype=str)
#打印前几行
salesDF.head()

75ccdb0a184f446b87ab3a95a9d58bec.png

2.3、查看excel表结构 

#查看表结构,有多少行和列
salesDF.shape

 (290, 9)

2.4、查看索引

#查看索引
print(salesDF.index)

RangeIndex(start=0, stop=290, step=1)

2.5、查看每一列的列表头内容

#查看每一列的列表头内容
print(salesDF.columns)

Index(['编号', '销售部', '销售员', '销售时间', '商品编码', '商品名称', '单价', '销售数量', '销售金额'], dtype='object')

2.6、查看每一列数据统计数目

#查看每一列数据统计数目
print(salesDF.count())

 编号      290
销售部     290
销售员     290
销售时间    290
商品编码    289
商品名称    290
单价      290
销售数量    290
销售金额    290
dtype: int64

2.7、看字段类型

#查看字段类型,每一列的类型
salesDF.dtypes

55b2adbfa8f7401da506dea4a51677ff.png

2.8、查看数据信息

#查看数据信息
print(salesDF.info())

三、数据清洗

数据清洗的步骤为(7步):
选择子集->列名重命名->删除重复值->缺失值处理->一致化处理->数据排序->异常值处理

3.1、选择子集

(本例不需要选择子集)

3.2、列名重命名

(本例不需要列名重命名)

如果需要,可用以下方法:

数据中原来是“销售日期” ,现在需要将 “销售日期” 重命名为"销售时间"

colNameDict={'销售日期':'销售时间'}
salesDF.rename(columns=colNameDict,inplace=True)
salesDF.head()

3.3、删除重复值

(本例不需要删除重复值),

如果需要删除重复值,可用以下方法:

subsalesDF=salesDF.drop_duplicates(subset=['销售时间','商品名称'])

3.4、缺失值处理

(本例不存在缺失值),

获取的数据中很可能存在缺失值,如果遇到错误:例如float错误,那就是有缺失值,所以如果有缺失值需要处理掉。

python缺失值有3种:
1)Python内置的None值;
2)在pandas中,将缺失值表示为NA,表示不可用not available;
3)对于数值数据,pandas使用浮点值NaN(Not a Number)表示缺失数据。

所以,缺失值有3种:None,NA,NaN

可用以下方法:
#删除列(销售时间、商品名称)为空的行
salesDF=salesDF.dropna(subset=['销售时间','商品名称'],how='any')
 

3.5、一致化处理

1)销售金额由字符串转换为数值(浮点型)

#将销量、单价、销售金额由字符串转换为数值(浮点型)

salesDF['销售数量']=salesDF['销售数量'].astype('float')
salesDF['单价']=salesDF['单价'].astype('float')
salesDF['销售金额']=salesDF['销售金额'].astype('float')
print('转换后的数据类型:\n',salesDF.dtypes)

f9c2f5b745b2452d82fad895405112c2.png

2)将日期字符串转换为日期数据类型

#将日期字符串转换为日期数据类型

#分割日期格式,获取销售日期
def splitSalestime(salestimeCol):
    timeList=[]
    for value in salestimeCol:
        dataStr=value.split(' ')[0]
        timeList.append(dataStr)        
    salestimeSer=pd.Series(timeList)
    return salestimeSer
salestime=salesDF.loc[:,'销售时间']
salestimeSer=splitSalestime(salestime)
salestimeSer[0:5]

#将转换后的日期格式内容赋值原销售时间列
salesDF.loc[:,'销售时间']=salestimeSer
salesDF.head()

47cebb4d3a254e519de6566696c7106b.png

#虽然销售时间是日期形式,但是原表中的数据类型仍然是字符串,需要将其转换为日期格式。

print('销售时间列转换前格式:',salesDF.loc[:,'销售时间'].dtypes)
#errors='coerce' 如果原始数据不符合日期的格式,转换后的值为空值NaT
salesDF.loc[:,'销售时间']=pd.to_datetime(salesDF.loc[:,'销售时间'],format='%Y-%m-%d',errors='coerce')
print('销售时间列转换后格式:',salesDF.loc[:,'销售时间'].dtypes)
print('转换后的数据类型:\n',salesDF.dtypes)

7ef0407724db43ecb31b0d10bd32d15f.png

转换日期过程中不符合日期格式的数值会被转换为空值,这里删除列(销售时间,商品名称)中为空的行。

salesDF=salesDF.dropna(subset=['销售时间','商品名称'],how='any')
salesDF.shape

3.6、数据排序

排序时用到的几个参数:

by:按哪几列排序


ascending:

True表示升序排列,

false表示降序排列

na_position:
在按指定列进行排序时,
如果此列数据中有空值(NaN),
na_position(参数默认)为 last ,空值默认排在最后面,
na_position='first',表示排序的时候,把空值放到前列
na_position参数只支持按单列排序时使用,在按多重索引或按多列排序时无效。

1)进行升序排列

#进行升序排列
print('进行升序排列排序后的数据集:')
df_index=salesDF.sort_index(ascending=True).head()
df_index

2)进行降序排列

#进行降序排列
print('进行降序排列排序后的数据集:')
df_index=salesDF.sort_index(ascending=False).head()
df_index


 

3)按指定列进行排序

#按指定列进行排序
print('按指定列进行排序,排序后的数据集:')
df_value=salesDF.sort_values(by='销售数量',ascending=True).head()
df_value

3.7、异常值处理

(本例不存在异常值),

如需要,可按实际情况查询后排除。例如

1)查看是否存在数值异常

#查看异常值,例如“销售数量”值不能小于0,可通过
salesDF.describe()

#查看异常值,例如“销售数量”值不能小于0,可通过
salesDF.describe()

2)设定条件,由系统判定真假

#查看异常值
querySer=salesDF.loc[:,'销售数量']>0
querySer

存在异常值:销售数量<0
#删除异常值:通过条件判断筛选出数据
#查询条件
querySer=salesDF.loc[:,'销售数量']>0
#应用查询条件
print('删除异常值前:',salesDF.shape)
salesDF=salesDF.loc[querySer,:]
print('删除异常值后:',salesDF.shape)

四、数据分析统计

4.1、各销售代表的销售量

#各销售代表的销售量

test = salesDF.groupby("销售员")[['销售数量','销售金额']].sum()   
display(test)


4.2、统计各类别商品的平均价并保留2位小数

test = salesDF.groupby("商品名称")[['销售金额']].agg(["mean"])
test['销售金额'] = test['销售金额'].round(2)
print("统计各类别商品的平均价最终获取到的数据是(保留2位小数):")
display(test)


4.3、统计各商品的销售额

#统计各商品的销售额
test = salesDF.groupby(['商品编码','商品名称'])[['销售数量','销售金额']].sum()   
display(test)


4.4、统计各商品各地的销售情况

#统计各商品各地的销售情况
print("各商品各地的销售情况:")
for g in salesDF.groupby(['商品编码','商品名称'])[['销售数量','销售金额']]:
    print();
    display(g);
    print();
    print("===================================================================================")

 
4.5、统计8月各代表的销售额

print("8月各代表的销售额:")
print("=======================")

# 将日期列转换为日期类型
salesDF['销售时间'] = pd.to_datetime(salesDF['销售时间'])


# 提取8月份的数据
august_data = salesDF[salesDF['销售时间'].dt.month == 8]
#display(august_data)

# 使用groupby函数按代表进行分组,并计算销售额总和
test=(salesDF[salesDF['销售时间'].dt.month == 8]).groupby('销售员')['销售金额'].sum()

# 打印结果
print(test)

4.6、统计下半年各月的销售额

#统计下半年各月的销售额
 
print("下半年各月的销售额:")
print("=======================")

# 将日期列转换为日期类型
salesDF['销售时间'] = pd.to_datetime(salesDF['销售时间'])


# 筛选下半年的数据
data_half_year = salesDF[salesDF['销售时间'].dt.month >= 7]
#display(august_data)

# 按月份分组并计算销售额
sales_by_month = data_half_year.groupby(data_half_year['销售时间'].dt.month)['销售金额'].sum()

print(sales_by_month)

   推荐阅读:

大数据的关键技术之——大数据采集
[你找到牵手一辈子的人了吗?] 七夕情人节特辑
深度学习框架TensorFlow

9e598365ba5344e282453e71a676a056.jpeg

b9b9f2b9374646798ca554110a498cda.jpeg

23f61e3eac99458296be0fedea10019e.jpeg

给照片换底色(python+opencv)猫十二分类基于大模型的虚拟数字人__虚拟主播实例

bfa502b957c247a7872d7e645d4c6f03.jpeg

2f073e39924e42d2b33221f4262dcc1d.jpeg

9d7e2b6a00aa45fd82291f0d5f9eea7e.jpeg

计算机视觉__基本图像操作(显示、读取、保存)直方图(颜色直方图、灰度直方图)直方图均衡化(调节图像亮度、对比度)

01bfb23f2f894ee0b0164f52e57bbbbc.png

47c92d6cf9fe4d279a142480a4340a0d.png

1620a2a7b0914c42b3a8254e94269a79.png

语音识别实战(python代码)(一)

 人工智能基础篇

 计算机视觉基础__图像特征

93d65dbd09604c4a8ed2c01df0eebc38.png

 matplotlib 自带绘图样式效果展示速查(28种,全)

074cd3c255224c5aa21ff18fdc25053c.png

Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一)

fe88b78e78694570bf2d850ce83b1f69.png

62e23c3c439f42a1badcd78f02092ed0.png

cb4b0d4015404390a7b673a2984d676a.png

立体多层玫瑰绘图源码__玫瑰花python 绘图源码集锦

 Python 3D可视化(一)

让你的作品更出色——词云Word Cloud的制作方法(基于python,WordCloud,stylecloud)

e84d6708316941d49a79ddd4f7fe5b27.png

938bc5a8bb454a41bfe0d4185da845dc.jpeg

0a4256d5e96d4624bdca36433237080b.png

 python Format()函数的用法___实例详解(一)(全,例多)___各种格式化替换,format对齐打印

 用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心)

python爱心源代码集锦(18款)

dc8796ddccbf4aec98ac5d3e09001348.jpeg

0f09e73712d149ff90f0048a096596c6.png

40e8b4631e2b486bab2a4ebb5bc9f410.png

 Python中Print()函数的用法___实例详解(全,例多)

 Python函数方法实例详解全集(更新中...)

 《 Python List 列表全实例详解系列(一)》__系列总目录、列表概念

09e08f86f127431cbfdfe395aa2f8bc9.png

6d64357a42714dab844bf17483d817c0.png

用代码过中秋,python海龟月饼你要不要尝一口?

 python练习题目录

03ed644f9b1d411ba41c59e0a5bdcc61.png

daecd7067e7c45abb875fc7a1a469f23.png

17b403c4307c4141b8544d02f95ea06c.png

草莓熊python turtle绘图(风车版)附源代码

 ​草莓熊python turtle绘图代码(玫瑰花版)附源代码

 ​草莓熊python绘图(春节版,圣诞倒数雪花版)附源代码

4d9032c9cdf54f5f9193e45e4532898c.png

c5feeb25880d49c085b808bf4e041c86.png

 巴斯光年python turtle绘图__附源代码

皮卡丘python turtle海龟绘图(电力球版)附源代码

80007dbf51944725bf9cf4cfc75c5a13.png

1ab685d264ed4ae5b510dc7fbd0d1e55.jpeg

1750390dd9da4b39938a23ab447c6fb6.jpeg

 Node.js (v19.1.0npm 8.19.3) vue.js安装配置教程(超详细)

 色彩颜色对照表(一)(16进制、RGB、CMYK、HSV、中英文名)

2024年1月多家权威机构____编程语言排行榜__薪酬状况

aa17177aec9b4e5eb19b5d9675302de8.png

38266b5036414624875447abd5311e4d.png

6824ba7870344be68efb5c5f4e1dbbcf.png

 手机屏幕坏了____怎么把里面的资料导出(18种方法)

【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向)

 查看jdk安装路径,在windows上实现多个java jdk的共存解决办法,安装java19后终端乱码的解决

1408dd16a76947e4a7eb3c54cd570d95.png

vue3 项目搭建教程(基于create-vue,vite,Vite + Vue)

fea225cb9ec14b60b2d1b797dd8278a2.png

bba02a1c4617422c9fbccbf5325850d9.png

37d6aa3e03e241fa8db72ccdfb8f716b.png

2023年春节祝福第二弹——送你一只守护兔,让它温暖每一个你【html5 css3】画会动的小兔子,炫酷充电,字体特

 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(4套)

SVG实例详解系列(一)(svg概述、位图和矢量图区别(图解)、SVG应用实例)

5d409c8f397a45c986ca2af7b7e725c9.png

6176c4061c72430eb100750af6fc4d0e.png

1f53fb9c6e8b4482813326affe6a82ff.png​​​​​​​

【程序人生】卡塔尔世界杯元素python海龟绘图(附源代码),世界杯主题前端特效5个(附源码)HTML+CSS+svg绘制精美彩色闪灯圣诞树,HTML+CSS+Js实时新年时间倒数倒计时(附源代码)

 2023春节祝福系列第一弹(上)(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载)

fffa2098008b4dc68c00a172f67c538d.png​​​​​​​

5218ac5338014f389c21bdf1bfa1c599.png​​​​​​​

c6374d75c29942f2aa577ce9c5c2e12b.png​​​​​​​

 tomcat11、tomcat10 安装配置(Windows环境)(详细图文)

 Tomcat端口配置(详细)

 Tomcat 启动闪退问题解决集(八大类详细)

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

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

相关文章

SpringBoot中application.yml引入多个YML文件

系列文章目录 文章目录 系列文章目录前言前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 首先,你要了解SpringBoot配置文件加载顺序,加载位置(代码内,Nacos等)…

[数据结构]栈和队列结构的简单制作

一、栈 1.1栈的概念以及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。 栈中的数据元素遵守后进先出LIFO(Last In First Out)的原…

yolov7的改进工地安全帽佩戴检测系统-协同双注意力机制CDAM2(教程+代码)

研究的背景和意义 随着工业化和城市化的快速发展,建筑工地的安全问题日益凸显。在建筑工地中,工人的安全是至关重要的,而工地安全帽的佩戴是保障工人安全的重要措施之一。然而,由于工地环境复杂多变,工人的佩戴情况往…

网络安全之权限维持那点事

权限维持 一旦黑客成功地入侵了目标系统,他们通常会尝试保持对系统的持久访问权,以便继续执行恶意活动,如窃取敏感数据、植入恶意软件、破坏系统功能等。 权限维持的过程可能包括以下几个方面: 后门植入:黑客可能会在…

蓝桥杯单片机要点——第十二届省赛(含代码)

题目: 用到的模块: LED单个点亮(建议用sbit,文件开头定义单个引脚) 数码管动态显示 矩阵键盘 ds18b20,用到onewire.c DAC转化(步骤见文章末尾的易错点),用到iic.c m…

一本书了解AI的下一个风口:AI Agent

在数字化浪潮中,人工智能(AI)已成为推动现代社会前进的强劲引擎。 从智能手机的智能助手到自动驾驶汽车的精准导航,AI技术的应用已经渗透到生活的方方面面。 随着技术的飞速发展,我们正站在一个新的转折点上&#xff…

Playwright安装和基本使用(ui/web自动化)

1.简介 Playwright是2021年微软开源的一个项目「playwright-python」。针对 Python 语言的纯自动化工具,它可以通过单个API自动执行 Chromium,Firefox 和 WebKit 浏览器,同时支持以无头模式、有头模式运行。 Playwright(Git&…

美国CPC认证是什么认证

美国CPC认证是一种针对儿童产品的认证,旨在确保这些产品的安全性。CPC全称为Consumer Product Certification,即消费品认证,是美国消费品安全委员会(CPSC)所推行的一种自愿性认证制度。通过CPC认证的产品,意…

人证比对接口在游戏行业的作用

人证比对接口又叫实人认证接口、人脸身份证比对接口、人脸实名认证接口,这个接口在很多行业都有重大作用,特别是确认当前用户信息至关重要。今天我们来聊一聊实人认证接口在游戏行业的作用。 今天为什么聊这个话题呢,主要就是最近热搜都被杭…

AR远程空间标注Vuforia+WebRTC音视频通话和空间标注功能

AR远程空间标注VuforiaWebRTC音视频通话和空间标注功能 视频学习地址:https://www.bilibili.com/video/BV1ZT4y187mG/?vd_sourcefc4b6cdd80b58c93a280fd74c37aadbf

LeetCode110:平衡二叉树

题目描述 给定一个二叉树,判断它是否是 平衡二叉树 解题思想 使用递归依次计算左子树的高度和右子树的高度 代码 class Solution { public:int height(TreeNode* node) {if (node nullptr) return 0;int leftT height(node->left);if (leftT -1) return -1;…

武汉星起航:亚马逊助力中国卖家拓展全球市场,实现品牌价值最大化

亚马逊,作为全球电商的领军平台,不仅为消费者提供了丰富的购物选择,同时也为中国卖家带来了前所未有的益处和在中国市场的巨大优势。 亚马逊为中国卖家提供了一个全球化的销售平台。这个平台不仅连接了中国与世界的消费者,还为中…

标准C库文件操作

open 系列API 和 fopen系列API的区别 1.来源: -open 是UNIX系统调用函数(包括LINUX系统),返回的是文件描述符 -fopen是ANSIC标准的C语言库函数,在不同系统重调用不同内核的API 2.移植性: fopen 是C标准函数,具有良好的移植性; 而…

Vue 移动端(H5)项目怎么实现页面缓存(即列表页面进入详情返回后列表页面缓存且还原页面滚动条位置)keep-alive简单使用

一、需求 产品要求:Vue移动端项目进入列表页,列表页需要刷新,而从详情页返回列表页,列表页则需要缓存并且还原页面滚动条位置 二、实现思路 1、使用Vue中的keep-alive组件,keep-alive提供了路由缓存功能 2、因为我项…

基于知识图谱的推理:智能决策与自动发现

基于知识图谱的推理:智能决策与自动发现 一、引言 在今天这个数据驱动的时代,我们经常会听到人们提及“知识图谱”这个词。知识图谱,作为一种结构化知识的表达方式,已经成为智能系统不可或缺的一部分,它通过连接大量的…

ModuleNotFoundError: No module named ‘mlxtend‘

from mlxtend.plotting import plot_decision_regions 报错信息: ModuleNotFoundError: No module named mlxtend Jupyter和Spyder报错原因:因为anaconda下没有这个模块,需要安装mlxtend 解决方案: 1.打开anaconda(或终端) 2. 点击路径点…

项目文章| Plant CellDAP-seq解析草莓NAC转录因子FvRIF的调控网络

DAP-seq是一种体外研究蛋白与DNA结合的技术,该技术利用麦胚乳表达体系表达目标蛋白然后与基因组DNA文库体外孵育,得到目标蛋白的结合信息。与ChIP-seq和CUT&Tag不同,DAP-seq不需要抗体,在植物中应用更为广泛。今天我们分享一篇…

Java开发面试题分享

目录 1、简述MyISAM和InnoDB的区别 2、简述Hash和B树索引的区别 3、简述MyBatis的实现逻辑 4、#{}和${}的区别 5、简述Mybatis的优缺点 6、当实体类中的属性名和表中的字段名不一样时怎么办? 7、resultType与resultMap的区别 8、如何执行批量插入 9、Mybat…

[中级]软考_软件设计_计算机组成与体系结构_12_概述及回顾

概述及回顾 总纲考情分析与分值海明校验码计算公式重点 总纲 考情分析与分值 海明校验码计算公式 2 r m r 1 2^r mr1 2rmr1 重点 数据的表示是计算题型的基础计算机组成中的CPU组成计算机组成中的存储系统,是核心重点的考察CISC与RISC及流水线执行时间的求取

YOLOv8在windows平台的C++推理

前言 YOLOv8很多人很多人很熟悉了,现在V9都已经出来了,学习没有比别人更新的快! 个人记录一下在windows平台使用C++推理的记录。 环境配置 YOLOv8的传统的环境配置,就不多说,网上很多参考教程。 需要注意的点就是,本次C++推理需要使用OPENCV的DNN模块,所以我们需要下…