19-Pandas merge合并操作

Pandas merge合并操作(主键合并数据)

Pandas 提供的 merge() 函数能够进行高效的合并操作,这与 SQL 关系型数据库的 join用法非常相似。从字面意思上不难理解,merge 翻译为“合并”,指的是将两个 DataFrame 数据表按照指定的规则进行连接,最后拼接成一个新的 DataFrame 数据表。

merge() 函数的法格式如下:

pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,left_index=False, right_index=False, sort=True,suffixes=('_x', '_y'), copy=True)

参数说明,如下表所示:

参数名称说明
left/right两个不同的 DataFrame 对象。
on指定用于连接的键(即列标签的名字),该键必须同时存在于左右两个 DataFrame 中,如果没有指定,并且其他参数也未指定, 那么将会以两个 DataFrame 的列名交集做为连接键。
left_on指定左侧 DataFrame 中作连接键的列名。该参数在左、右列标签名不相同,但表达的含义相同时非常有用。
right_on指定左侧 DataFrame 中作连接键的列名。
left_index布尔参数,默认为 False。如果为 True 则使用左侧 DataFrame 的行索引作为连接键,若 DataFrame 具有多层 索引(MultiIndex),则层的数量必须与连接键的数量相等。
right_index布尔参数,默认为 False。如果为 True 则使用左侧 DataFrame 的行索引作为连接键。
how要执行的合并类型,从 {‘left’, ‘right’, ‘outer’, ‘inner’} 中取值,默认为“inner”内连接。
sort布尔值参数,默认为True,它会将合并后的数据进行排序;若设置为 False,则按照 how 给定的参数值进行排序。
suffixes字符串组成的元组。当左右 DataFrame 存在相同列名时,通过该参数可以在相同的列名后附加后缀名,默认为(‘_x’,‘_y’)。
copy默认为 True,表示对数据进行复制。

注意:Pandas 库的 merge() 支持各种内外连接,与其相似的还有 join() 函数(默认为左连接)。

准备两个不同的DataFrame,这里从文件中读取:

文件empdata.csv:

EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO
7369,SMITH,CLERK,7902.0,1980-12-17,800,,20
7499,ALLEN,SALESMAN,7698.0,1981-02-20,1600,300.0,30
7521,WARD,SALESMAN,7698.0,1981-02-22,1250,500.0,30
7566,JONES,MANAGER,7839.0,1981-04-02,2975,,20
7654,MARTIN,SALESMAN,7698.0,1981-09-28,1250,1400.0,30
7698,BLAKE,MANAGER,7839.0,1981-05-01,2850,,30
7782,CLARK,MANAGER,7839.0,1981-06-09,2450,,10
7788,SCOTT,ANALYST,7566.0,1987-04-19,3000,,20
7839,KING,PRESIDENT,,1981-11-17,5000,,10
7844,TURNER,SALESMAN,7698.0,1981-09-08,1500,0.0,30
7876,ADAMS,CLERK,7788.0,1987-05-23,1100,,20
7900,JAMES,CLERK,7698.0,1981-12-03,950,,30
7902,FORD,ANALYST,7566.0,1981-12-03,3000,,20
7934,MILLER,CLERK,7782.0,1982-01-23,1300,,10

文件deptdata.csv:

DEPTNO,DNAME,LOC
10,ACCOUNTING,NEW YORK
20,RESEARCH,DALLAS
30,SALES,CHICAGO
40,OPERATIONS,BOSTON

下面创建两个不同的 DataFrame,然后对它们进行合并操作:

import pandas as pd
import numpy as np

df_emp  = pd.read_csv('C:\\Users\\qwy\Desktop\data\\empdata.csv')
df_dept  = pd.read_csv('C:\\Users\\qwy\Desktop\data\\deptdata.csv')

print("员工表中的df数据:\n",df_emp)
print("部门表中的df数据:\n",df_dept)

输出如下:

员工表中的df数据:
     EMPNO   ENAME        JOB     MGR    HIREDATE   SAL    COMM  DEPTNO
0    7369   SMITH      CLERK  7902.0  1980-12-17   800     NaN      20
1    7499   ALLEN   SALESMAN  7698.0  1981-02-20  1600   300.0      30
2    7521    WARD   SALESMAN  7698.0  1981-02-22  1250   500.0      30
3    7566   JONES    MANAGER  7839.0  1981-04-02  2975     NaN      20
4    7654  MARTIN   SALESMAN  7698.0  1981-09-28  1250  1400.0      30
5    7698   BLAKE    MANAGER  7839.0  1981-05-01  2850     NaN      30
6    7782   CLARK    MANAGER  7839.0  1981-06-09  2450     NaN      10
7    7788   SCOTT    ANALYST  7566.0  1987-04-19  3000     NaN      20
8    7839    KING  PRESIDENT     NaN  1981-11-17  5000     NaN      10
9    7844  TURNER   SALESMAN  7698.0  1981-09-08  1500     0.0      30
10   7876   ADAMS      CLERK  7788.0  1987-05-23  1100     NaN      20
11   7900   JAMES      CLERK  7698.0  1981-12-03   950     NaN      30
12   7902    FORD    ANALYST  7566.0  1981-12-03  3000     NaN      20
13   7934  MILLER      CLERK  7782.0  1982-01-23  1300     NaN      10
部门表中的df数据:
    DEPTNO       DNAME       LOC
0      10  ACCOUNTING  NEW YORK
1      20    RESEARCH    DALLAS
2      30       SALES   CHICAGO
3      40  OPERATIONS    BOSTON
1) 在单个键上进行合并操作

通过 on 参数指定一个连接键,然后对上述 DataFrame 进行合并操作:

import pandas as pd
import numpy as np

df_emp_left  = pd.read_csv('C:\\Users\\qwy\Desktop\data\\empdata.csv')
df_dept_right  = pd.read_csv('C:\\Users\\qwy\Desktop\data\\deptdata.csv')
# 通过on指定合并的主键
print(pd.merge(df_emp_left,df_dept_right,on="DEPTNO"))

输出结果:

    EMPNO   ENAME        JOB     MGR  ...    COMM  DEPTNO       DNAME       LOC
0    7782   CLARK    MANAGER  7839.0  ...     NaN      10  ACCOUNTING  NEW YORK
1    7839    KING  PRESIDENT     NaN  ...     NaN      10  ACCOUNTING  NEW YORK
2    7934  MILLER      CLERK  7782.0  ...     NaN      10  ACCOUNTING  NEW YORK
3    7369   SMITH      CLERK  7902.0  ...     NaN      20    RESEARCH    DALLAS
4    7566   JONES    MANAGER  7839.0  ...     NaN      20    RESEARCH    DALLAS
5    7788   SCOTT    ANALYST  7566.0  ...     NaN      20    RESEARCH    DALLAS
6    7876   ADAMS      CLERK  7788.0  ...     NaN      20    RESEARCH    DALLAS
7    7902    FORD    ANALYST  7566.0  ...     NaN      20    RESEARCH    DALLAS
8    7499   ALLEN   SALESMAN  7698.0  ...   300.0      30       SALES   CHICAGO
9    7521    WARD   SALESMAN  7698.0  ...   500.0      30       SALES   CHICAGO
10   7654  MARTIN   SALESMAN  7698.0  ...  1400.0      30       SALES   CHICAGO
11   7698   BLAKE    MANAGER  7839.0  ...     NaN      30       SALES   CHICAGO
12   7844  TURNER   SALESMAN  7698.0  ...     0.0      30       SALES   CHICAGO
13   7900   JAMES      CLERK  7698.0  ...     NaN      30       SALES   CHICAGO

[14 rows x 10 columns]
2) 在多个键上进行合并操作

下面示例,指定多个键来合并上述两个 DataFrame 对象:(这里使用自定义数据了)

import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4],
   'Name': ['Smith', 'Maiki', 'Hunter', 'Hilen'],
   'subject_id':['sub1','sub2','sub4','sub6']})
right = pd.DataFrame({
    'id':[1,2,3,4],
   'Name': ['Bill', 'Lucy', 'Jack', 'Mike'],
   'subject_id':['sub2','sub4','sub3','sub6']})
print(pd.merge(left,right,on=['id','subject_id']))

输出结果:

   id Name_x subject_id Name_y
0   4  Hilen       sub6   Mike

使用how参数合并

通过how参数可以确定 DataFrame 中要包含哪些键,如果在左表、右表都不存的键,那么合并后该键对应的值为 NaN。为了便于大家学习,我们将 how 参数和与其等价的 SQL 语句做了总结:

Merge方法等效 SQL描述
leftLEFT OUTER JOIN使用左侧对象的key
rightRIGHT OUTER JOIN使用右侧对象的key
outerFULL OUTER JOIN使用左右两侧所有key的并集
innerINNER JOIN使用左右两侧key的交集
1) left join
import pandas as pd

df_emp_left  = pd.read_csv('C:\\Users\\qwy\Desktop\data\\empdata.csv')
df_dept_right  = pd.read_csv('C:\\Users\\qwy\Desktop\data\\deptdata.csv')
# 为了演示,这里将雇员7369的部门删除了,运行如下:
print(pd.merge(df_emp_left,df_dept_right,on="DEPTNO",how="left"))

输出结果:能发现7369的DEPTNO,DNAME,LOC都为NaN

    EMPNO   ENAME        JOB     MGR  ...    COMM  DEPTNO       DNAME       LOC
0    7369   SMITH      CLERK  7902.0  ...     NaN     NaN         NaN       NaN
1    7499   ALLEN   SALESMAN  7698.0  ...   300.0    30.0       SALES   CHICAGO
2    7521    WARD   SALESMAN  7698.0  ...   500.0    30.0       SALES   CHICAGO
3    7566   JONES    MANAGER  7839.0  ...     NaN    20.0    RESEARCH    DALLAS
4    7654  MARTIN   SALESMAN  7698.0  ...  1400.0    30.0       SALES   CHICAGO
5    7698   BLAKE    MANAGER  7839.0  ...     NaN    30.0       SALES   CHICAGO
6    7782   CLARK    MANAGER  7839.0  ...     NaN    10.0  ACCOUNTING  NEW YORK
7    7788   SCOTT    ANALYST  7566.0  ...     NaN    20.0    RESEARCH    DALLAS
8    7839    KING  PRESIDENT     NaN  ...     NaN    10.0  ACCOUNTING  NEW YORK
9    7844  TURNER   SALESMAN  7698.0  ...     0.0    30.0       SALES   CHICAGO
10   7876   ADAMS      CLERK  7788.0  ...     NaN    20.0    RESEARCH    DALLAS
11   7900   JAMES      CLERK  7698.0  ...     NaN    30.0       SALES   CHICAGO
12   7902    FORD    ANALYST  7566.0  ...     NaN    20.0    RESEARCH    DALLAS
13   7934  MILLER      CLERK  7782.0  ...     NaN    10.0  ACCOUNTING  NEW YORK

[14 rows x 10 columns]
2) right join
import pandas as pd

df_emp_left  = pd.read_csv('C:\\Users\\qwy\Desktop\data\\empdata.csv')
df_dept_right  = pd.read_csv('C:\\Users\\qwy\Desktop\data\\deptdata.csv')
# 部门40因为没有员工,所以对应员工的信息全部为NaN
print(pd.merge(df_emp_left,df_dept_right,on="DEPTNO",how="right"))

输出结果:(部门40因为没有员工,所以对应员工的信息全部为NaN)

     EMPNO   ENAME        JOB     MGR  ...    COMM  DEPTNO       DNAME       LOC
0   7782.0   CLARK    MANAGER  7839.0  ...     NaN      10  ACCOUNTING  NEW YORK
1   7839.0    KING  PRESIDENT     NaN  ...     NaN      10  ACCOUNTING  NEW YORK
2   7934.0  MILLER      CLERK  7782.0  ...     NaN      10  ACCOUNTING  NEW YORK
3   7369.0   SMITH      CLERK  7902.0  ...     NaN      20    RESEARCH    DALLAS
4   7566.0   JONES    MANAGER  7839.0  ...     NaN      20    RESEARCH    DALLAS
5   7788.0   SCOTT    ANALYST  7566.0  ...     NaN      20    RESEARCH    DALLAS
6   7876.0   ADAMS      CLERK  7788.0  ...     NaN      20    RESEARCH    DALLAS
7   7902.0    FORD    ANALYST  7566.0  ...     NaN      20    RESEARCH    DALLAS
8   7499.0   ALLEN   SALESMAN  7698.0  ...   300.0      30       SALES   CHICAGO
9   7521.0    WARD   SALESMAN  7698.0  ...   500.0      30       SALES   CHICAGO
10  7654.0  MARTIN   SALESMAN  7698.0  ...  1400.0      30       SALES   CHICAGO
11  7698.0   BLAKE    MANAGER  7839.0  ...     NaN      30       SALES   CHICAGO
12  7844.0  TURNER   SALESMAN  7698.0  ...     0.0      30       SALES   CHICAGO
13  7900.0   JAMES      CLERK  7698.0  ...     NaN      30       SALES   CHICAGO
14     NaN     NaN        NaN     NaN  ...     NaN      40  OPERATIONS    BOSTON

[15 rows x 10 columns]
3) outer join(并集)
import pandas as pd

df_emp_left  = pd.read_csv('C:\\Users\\qwy\Desktop\data\\empdata.csv')
df_dept_right  = pd.read_csv('C:\\Users\\qwy\Desktop\data\\deptdata.csv')
# 部门40因为没有员工,所以对应员工的信息全部为NaN,又因为7369没对应的部门,所以部门信息全部为Nan
print(pd.merge(df_emp_left,df_dept_right,on="DEPTNO",how="outer"))

输出结果:

     EMPNO   ENAME        JOB     MGR  ...    COMM  DEPTNO       DNAME       LOC
0   7369.0   SMITH      CLERK  7902.0  ...     NaN     NaN         NaN       NaN
1   7499.0   ALLEN   SALESMAN  7698.0  ...   300.0    30.0       SALES   CHICAGO
2   7521.0    WARD   SALESMAN  7698.0  ...   500.0    30.0       SALES   CHICAGO
3   7654.0  MARTIN   SALESMAN  7698.0  ...  1400.0    30.0       SALES   CHICAGO
4   7698.0   BLAKE    MANAGER  7839.0  ...     NaN    30.0       SALES   CHICAGO
5   7844.0  TURNER   SALESMAN  7698.0  ...     0.0    30.0       SALES   CHICAGO
6   7900.0   JAMES      CLERK  7698.0  ...     NaN    30.0       SALES   CHICAGO
7   7566.0   JONES    MANAGER  7839.0  ...     NaN    20.0    RESEARCH    DALLAS
8   7788.0   SCOTT    ANALYST  7566.0  ...     NaN    20.0    RESEARCH    DALLAS
9   7876.0   ADAMS      CLERK  7788.0  ...     NaN    20.0    RESEARCH    DALLAS
10  7902.0    FORD    ANALYST  7566.0  ...     NaN    20.0    RESEARCH    DALLAS
11  7782.0   CLARK    MANAGER  7839.0  ...     NaN    10.0  ACCOUNTING  NEW YORK
12  7839.0    KING  PRESIDENT     NaN  ...     NaN    10.0  ACCOUNTING  NEW YORK
13  7934.0  MILLER      CLERK  7782.0  ...     NaN    10.0  ACCOUNTING  NEW YORK
14     NaN     NaN        NaN     NaN  ...     NaN    40.0  OPERATIONS    BOSTON

[15 rows x 10 columns]
4) inner join(交集)
import pandas as pd

df_emp_left  = pd.read_csv('C:\\Users\\qwy\Desktop\data\\empdata.csv')
df_dept_right  = pd.read_csv('C:\\Users\\qwy\Desktop\data\\deptdata.csv')
# 部门40因为没有员工,,又因为7369没对应的部门,所以部门40和员工7369没显示
print(pd.merge(df_emp_left,df_dept_right,on="DEPTNO",how="inner"))

输出结果:

    EMPNO   ENAME        JOB     MGR  ...    COMM  DEPTNO       DNAME       LOC
0    7499   ALLEN   SALESMAN  7698.0  ...   300.0    30.0       SALES   CHICAGO
1    7521    WARD   SALESMAN  7698.0  ...   500.0    30.0       SALES   CHICAGO
2    7654  MARTIN   SALESMAN  7698.0  ...  1400.0    30.0       SALES   CHICAGO
3    7698   BLAKE    MANAGER  7839.0  ...     NaN    30.0       SALES   CHICAGO
4    7844  TURNER   SALESMAN  7698.0  ...     0.0    30.0       SALES   CHICAGO
5    7900   JAMES      CLERK  7698.0  ...     NaN    30.0       SALES   CHICAGO
6    7566   JONES    MANAGER  7839.0  ...     NaN    20.0    RESEARCH    DALLAS
7    7788   SCOTT    ANALYST  7566.0  ...     NaN    20.0    RESEARCH    DALLAS
8    7876   ADAMS      CLERK  7788.0  ...     NaN    20.0    RESEARCH    DALLAS
9    7902    FORD    ANALYST  7566.0  ...     NaN    20.0    RESEARCH    DALLAS
10   7782   CLARK    MANAGER  7839.0  ...     NaN    10.0  ACCOUNTING  NEW YORK
11   7839    KING  PRESIDENT     NaN  ...     NaN    10.0  ACCOUNTING  NEW YORK
12   7934  MILLER      CLERK  7782.0  ...     NaN    10.0  ACCOUNTING  NEW YORK

注意:当 a 与 b 进行内连操作时 a.join(b) 不等于 b.join(a)。

5)使用join函数

如果左右两个表的主键名相同,可以使用join函数。

import pandas as pd

df_emp_left  = pd.read_csv('C:\\Users\\qwy\Desktop\data\\empdata.csv')
df_dept_right  = pd.read_csv('C:\\Users\\qwy\Desktop\data\\deptdata.csv')
print(df_emp_left.join(df_dept_right,how="outer",rsuffix='1'))

运行结果:

    EMPNO   ENAME        JOB     MGR  ... DEPTNO  DEPTNO1       DNAME       LOC
0    7369   SMITH      CLERK  7902.0  ...    NaN     10.0  ACCOUNTING  NEW YORK
1    7499   ALLEN   SALESMAN  7698.0  ...   30.0     20.0    RESEARCH    DALLAS
2    7521    WARD   SALESMAN  7698.0  ...   30.0     30.0       SALES   CHICAGO
3    7566   JONES    MANAGER  7839.0  ...   20.0     40.0  OPERATIONS    BOSTON
4    7654  MARTIN   SALESMAN  7698.0  ...   30.0      NaN         NaN       NaN
5    7698   BLAKE    MANAGER  7839.0  ...   30.0      NaN         NaN       NaN
6    7782   CLARK    MANAGER  7839.0  ...   10.0      NaN         NaN       NaN
7    7788   SCOTT    ANALYST  7566.0  ...   20.0      NaN         NaN       NaN
8    7839    KING  PRESIDENT     NaN  ...   10.0      NaN         NaN       NaN
9    7844  TURNER   SALESMAN  7698.0  ...   30.0      NaN         NaN       NaN
10   7876   ADAMS      CLERK  7788.0  ...   20.0      NaN         NaN       NaN
11   7900   JAMES      CLERK  7698.0  ...   30.0      NaN         NaN       NaN
12   7902    FORD    ANALYST  7566.0  ...   20.0      NaN         NaN       NaN
13   7934  MILLER      CLERK  7782.0  ...   10.0      NaN         NaN       NaN

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

汽车零部件材料耐候性测试氙光太阳辐射系统试验箱

概述 汽车零部件等领域的材料耐候性测试是一项关键的质量控制环节,它关乎汽车部件在各种气候条件下的性能表现和寿命。塑料件光照老化实验箱,即氙灯老化试验箱,在其中扮演着至关重要的角色。通过模拟自然环境中的光照、温度、湿度等条件&…

顺序表(C语言详细版)

1. 线性表 线性表(lina list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...... 线性表在逻辑上是线性结构,也就是说连续的一条直线。但是在物理结构上并…

开源205W桌面充电器,140W+65W升降压PD3.1快充模块(2C+1A口),IP6557+IP6538

开源一个基于IP6557和IP6538芯片的205W升降压快充模块(140W65W),其中一路C口支持PD3.1协议,最高输出28V5A,另一路是A口C口,最高输出65W(20V3.25A),可搭配一个24V10A的开关…

Ubuntu20.04 安装 cudatookit 12.2 + cudnn 安装

最简约的部署Ubuntu20.04深度学习环境的教程 1. 安装Ubuntu20.04 系统 B站详细的安装教程 简约安装版 2. 安装Nvidia显卡驱动 我参考了各种资料,重装系统,完美解决开机显示器黑屏无法进入桌面的情况 黑屏问题主要是由linux内核更新导致,…

混合注意力机制 -- Convolutional Block Attention Module(CBAM)

CBAM CBAM 模块概述 通道注意力模块(Channel Attention Mechanism)和空间注意力模块(Spatial Attention Mechanism)是注意力机制的两种主要形式,它们分别通过对通道维度和空间维度的特征图进行加权,从而使…

算法金 | Transformer,一个神奇的算法模型!!

大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 抱个拳,送个礼 在现代自然语言处理(NLP)领域,Transformer 模型的出现带来了革命性的变…

每日一题-验证回文串

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” //验证回文串 #include<vector> class Solution { public:bool reverseString(char s) {return (s > a && s < z) ||(s > 0 && s < 9) ||(s…

Lesson 43 Hurry up!

Lesson 43 Hurry up! 词汇 of course 当然【口语】 经常出现在口语交际中&#xff1a; Of course not. 当然不。 同义词&#xff1a; Certainly 当然。 Certainly not. 当然不。 注意语气&#xff1a;略带挑衅。Sure. 当然。 Sure not. 当然不。 Not sure. 不一定。 kettle…

Pandas 学习笔记(一)

一、pandas简介 Pandas 是 Python 语言的一个扩展程序库&#xff0c;用于数据分析。 Pandas 名字衍生自术语 "panel data"&#xff08;面板数据&#xff09;和 "Python data analysis"&#xff08;Python 数据分析&#xff09;。 Pandas 是一个开放源码…

Python + OpenCV 酷游地址教学V鄋KWK3589

本篇文章汇整了一系列的Python OpenCV 教学&#xff0c;只要按照教学文的顺序阅读和实作&#xff0c;就可以轻松入门OpenCV&#xff0c;并透过OpenCV 实现许多影像相关的创意应用。 接下来我们来介绍OpenCV-- OpenCV 是一个跨平台的电脑视觉函式库( 模组) &#xff0c;可应用…

CesiumJS【Basic】- #042 绘制纹理线(Primitive方式)

文章目录 绘制纹理线(Primitive方式)1 目标2 代码2.1 main.ts3 资源文件绘制纹理线(Primitive方式) 1 目标 使用Primitive方式绘制纹理线 2 代码 2.1 main.ts var start = Cesium.Cartesian3

SSM泰华超市商品管理系统-计算机毕业设计源码11946

目 录 摘要 1 绪论 1.1 研究背景 1.2 研究意义 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据新增流程 3.2.2 数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 3 系统总体设…

一键把二次元老婆拉进现实(Stable Diffusion进阶:ControlNet LineArt模型)

大家好我是极客菌&#xff01;&#xff01;&#xff01; 操作&#xff0c;就能将二次元老婆拉进现实&#xff0c;成为你的专属女友。本文将带你深入了解ControlNet LineArt模型的使用方法&#xff0c;助你轻松实现这一梦想。 ControlNet LineArt模型是Stable Diffusion的最新…

AI大模型日报#0701:Meta发布LLM Compiler、扒一扒Sora两带头人博士论文

导读&#xff1a;AI大模型日报&#xff0c;爬虫LLM自动生成&#xff0c;一文览尽每日AI大模型要点资讯&#xff01;目前采用“文心一言”&#xff08;ERNIE-4.0-8K-latest&#xff09;生成了今日要点以及每条资讯的摘要。欢迎阅读&#xff01;《AI大模型日报》今日要点&#xf…

32.哀家要长脑子了!

1.299. 猜数字游戏 - 力扣&#xff08;LeetCode&#xff09; 公牛还是挺好数的&#xff0c;奶牛。。。妈呀&#xff0c;一朝打回解放前 抓本质抓本质&#xff0c;有多少位非公牛数可以通过重新排列转换公牛数字&#xff0c;意思就是&#xff0c;当这个数不是公牛数字时&#x…

控制器方法执行流程和 @InitBinder【Spring源码学习】

控制器方法执行流程 InitBinder 加在ControllerAdvice中 首先说明ControllerAdvice和aop没有任何关系&#xff01; 加在ControllerAdvice中只对所有控制器都生效 全局的在开始时就会保存到handlerMappingAdapter中的cache中&#xff1b; 加在Controller中 加在controller中只对…

TS---typescript的安装和tsc命令使用

什么是TS---typescript&#xff1f; &#xff08;TypeScript是Microsoft公司注册商标&#xff09; TypeScript具有类型系统&#xff0c;且是JavaScript的超集&#xff0c; 它可以编译成普通的JavaScript代码。TypeScript支持任意浏览器&#xff0c;任意环境&#xff0c;任意系…

仓库管理系统24--统计报表

原创不易&#xff0c;打字不易&#xff0c;截图不易&#xff0c;多多点赞&#xff0c;送人玫瑰&#xff0c;留有余香&#xff0c;财务自由明日实现 1、引用LiveCharts 2、创建LiveChartViewModel using GalaSoft.MvvmLight; using LiveCharts.Wpf; using LiveCharts; using Sy…

手把手搞定报名亚马逊科技认证

引言 亚马逊云科技认证考试为我们这些技术从业者提供了提升专业技能的机会。无论选择线上还是线下考试&#xff0c;每种方式都有其独特的优势和挑战。选择合适的考试方式将帮助我们更好地展示自己的技术水平。以下是我对不同考试方式的优缺点介绍&#xff0c;以及各科目的考试…

Java案例抢红包

目录 一&#xff1a;题目要求&#xff1a; 二&#xff1a;思路分析&#xff1a;&#xff08;遇见问题先想出完整的思路逻辑再去动手事半功倍&#xff09; 三&#xff1a;具体代码&#xff1a; 一&#xff1a;题目要求&#xff1a; 二&#xff1a;思路分析&#xff1a;&#x…