Python 之 Pandas DataFrame 数据类型的简介、创建的列操作

news2024/9/21 4:26:02

文章目录

  • 一、DataFrame 结构简介
  • 二、DataFrame 对象创建
    • 1. 使用普通列表创建
    • 2. 使用嵌套列表创建
    • 3 指定数值元素的数据类型为 float
    • 4. 字典嵌套列表创建
    • 5. 添加自定义的行标签
    • 6. 列表嵌套字典创建 DataFrame 对象
    • 7. Series 创建 DataFrame 对象
  • 三、DataFrame 列操作
    • 1. 选取数据列
    • 2. 列添加
    • 3. insert() 方法添加
    • 4. 删除数据列

  • DataFrame 是 Pandas 的重要数据结构之一,也是在使用 Pandas 进行数据分析过程中最常用的结构之一,可以这么说,掌握了 DataFrame 的用法,你就拥有了学习数据分析的基本能力。

一、DataFrame 结构简介

  • DataFrame 是一个表格型的数据结构,既有行标签(index),又有列标签(columns),它也被称异构数据表。
  • 所谓异构,指的是表格中每列的数据类型可以不同,比如可以是字符串、整型或者浮点型等。其结构图示意图,如下所示:

在这里插入图片描述

  • 表格中展示了某个销售团队个人信息和绩效评级(rating)的相关数据。数据以行和列形式来表示,其中每一列表示一个属性,而每一行表示一个条目的信息。
  • 下表展示了上述表格中每一列标签所描述数据的数据类型,如下所示:

在这里插入图片描述

  • DataFrame 的每一列数据都可以看成一个 Series 结构,只不过,DataFrame 为每列数据值增加了一个列标签。
  • 因此 DataFrame 其实是从 Series 的基础上演变而来,并且他们有相同的标签,在数据分析任务中 DataFrame 的应用非常广泛,因为它描述数据的更为清晰、直观。
  • 通过示例对 DataFrame 结构做进一步讲解。 下面展示了一张学生评分表,如下所示:

在这里插入图片描述

  • 同 Series 一样,DataFrame 自带行标签索引,默认为隐式索引即从 0 开始依次递增,行标签与 DataFrame 中的数据项一一对应。上述表格的行标签从 0 到 3,共记录了 4 条数据(图中将行标签省略)。当然你也可以用“显式索引”的方式来设置行标签。
  • 下面对 DataFrame 数据结构的特点做简单地总结,如下所示:
  • (1) DataFrame 每一列的标签值允许使用不同的数据类型。
  • (2) DataFrame 是表格型的数据结构,具有行和列。
  • (3) DataFrame 中的每个数据值都可以被修改。
  • (4) DataFrame 结构的行数、列数允许增加或者删除。
  • (5) DataFrame 有两个方向的标签轴,分别是行标签和列标签。
  • (6) DataFrame 可以对行和列执行算术运算。

二、DataFrame 对象创建

  • Pandas DataFrame 是一个二维的数组结构,类似二维数组。
  • DataFrame 的语法模板如下:
pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=None)

其参数含义如下:

  • data 表示输入的数据,可以是 ndarray,series,list,dict,标量以及一个 DataFrame。
  • index 表示行标签,如果没有传递 index 值,则默认行标签是 RangeIndex(0, 1, 2, …, n),n 代表 data 的元素个数。
  • columns 表示列标签,如果没有传递 columns 值,则默认列标签是 RangeIndex(0, 1, 2, …, n)。
  • dtype 表示要强制的数据类型。只允许使用一种数据类型。如果没有定义强制的数据类型,就会自行推断。
  • copy 表示从输入复制数据。对于 dict 数据,copy=True,表示重新复制一份。对于 DataFrame 或 ndarray 输入,类似于 copy=False,在原数据中进行操作。
  • 在开始之前,我们需要先引入 numpy 和 pandas 库。
import numpy as np​
import pandas as pd

1. 使用普通列表创建

  • 使用 DataFrame 数据结构进行输出。
  • 在这里我们并没有设置 index 和 columns,因此,他们就默认从 0 开始。
  • DataFrame 不会输出数据类型。
data = [1,2,3,4,5]
df = pd.DataFrame(data)
print(df)
#   0
#0  1
#1  2
#2  3
#3  4
#4  5
  • 使用 Series 数据结构进行输出。
  • Series 会输出对应的数据类型。
data = [1,2,3,4,5]
df = pd.Series(data)
print(df)
#0    1
#1    2
#2    3
#3    4
#4    5
#dtype: int64

2. 使用嵌套列表创建

  • 列表中每个元素代表一行数据,如果我们不分配列标签,他们会默认从 0 开始进行计数。
data = [['xiaowang',20],['Lily',30],['Anne',40]]
df = pd.DataFrame(data)print(df)
#          0   1
#0  xiaowang  20
#1      Lily  30
#2      Anne  40
  • 当我们分配列标签时,会按我们分配的进行输出。
  • 这里需要注意的是,我们分配的列标签必须和列数对应。
data = [['xiaowang',20],['Lily',30],['Anne',40]]
df = pd.DataFrame(data,columns=['Name','Age'])
print(df)
#       Name  Age
#0  xiaowang   20
#1      Lily   30
#2      Anne   40

3 指定数值元素的数据类型为 float

  • 需要注意的是,dtype 只能设置一个,设置多个列的数据类型,需要使用其他方式。
  • 当我们分配列标签时,满足我们设定的数据类型会自动使用,不满足则会自动识别。
data = [['xiaowang', 20, "男", 5000],['Lily', 30, "男", 8000],['Anne', 40, "女", 10000]]
df = pd.DataFrame(data,columns=['Name','Age',"gender", "salary"], dtype=int)
print(df)
print(df['salary'].dtype)
#       Name  Age gender  salary
#0  xiaowang   20      男    5000
#1      Lily   30      男    8000
#2      Anne   40      女   10000
#float64

4. 字典嵌套列表创建

  • data 字典中,键对应的值的元素长度必须相同(也就是列表长度相同)。
  • 如果传递了索引,那么索引的长度应该等于数组的长度;如果没有传递索引,那么默认情况下,索引将是 RangeIndex(0.1…n),其中 n 代表数组长度。
  • 这里我们需要注意的时,字典在 python 3.7 以后是有顺序的。
  • 例如,我们通过字典创建 DataFrame,输出行标签和列标签。
data = {'Name':['关羽', '刘备', '张飞', '曹操'],'Age':[28,34,29,42]}
df = pd.DataFrame(data)
print(df)
print(df.index)
print(df.columns)
#  Name  Age
#0   关羽   28
#1   刘备   34
#2   张飞   29
#3   曹操   42
#RangeIndex(start=0, stop=4, step=1)
#Index(['Name', 'Age'], dtype='object')
  • 注意:这里使用了默认行标签,也就是 RangeIndex(0.1…n)。它生成了 0,1,2,3,并分别对应了列表中的每个元素值。

5. 添加自定义的行标签

  • 通过字典嵌套列表创建 DataFrame ,并定义我们的行标签,最后输出行标签和列标签。
data = {'Name':['关羽', '刘备', '张飞', '曹操'],'Age':[28,34,29,42]}
index = ["rank1", "rank2", "rank3", "rank4"]
df = pd.DataFrame(data, index=index)
print(df)
print(df.index)
print(df.columns)#      Name  Age
#rank1   关羽   28
#rank2   刘备   34
#rank3   张飞   29
#rank4   曹操   42
#Index(['rank1', 'rank2', 'rank3', 'rank4'], dtype='object')
#Index(['Name', 'Age'], dtype='object')

6. 列表嵌套字典创建 DataFrame 对象

  • 列表嵌套字典可以作为输入数据传递给 DataFrame 构造函数。默认情况下,字典的键被用作列名。
data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
df = pd.DataFrame(data, index=['first', 'second'])print(df)
#        a   b     c
#first   1   2   NaN
#second  5  10  20.0
  • 注意,如果其中某个元素值缺失,也就是字典的 key 无法找到对应的 value,将使用 NaN 代替。
  • 如何使用列表嵌套字典创建一个 DataFrame 对象,可以设置结果需要那些列。
data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
df1 = pd.DataFrame(data, index=['first', 'second'], columns=['a', 'b'])
​df2 = pd.DataFrame(data, index=['first', 'second'], columns=['a', 'b1'])
print("===========df1============")
print(df1)
print("===========df2============")
print(df2)
#===========df1============
#        a   b
#first   1   2
#second  5  10
#===========df2============
#        a  b1
#first   1 NaN
#second  5 NaN

7. Series 创建 DataFrame 对象

  • 也可以传递一个字典形式的 Series,从而创建一个 DataFrame 对象,其输出结果的行索引是所有 index 的合集。
d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
   'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
print(df)
type(np.NaN)
#   one  two
#a  1.0    1
#b  2.0    2
#c  3.0    3
#d  NaN    4
#float
  • 注意:对于 one 列而言,此处虽然显示了行索引 ‘d’,但由于没有与其对应的值,所以它的值为 NaN。
  • 当我们需要解决不同列的数据类型时,可以使用设置自定义数据类型。
data = {
    "Name":pd.Series(['xiaowang', 'Lily', 'Anne']),
    "Age":pd.Series([20, 30, 40],  dtype=float),
    "gender":pd.Series(["男", "男", "女"]),
    "salary":pd.Series([5000, 8000, 10000], dtype=float)
}
df = pd.DataFrame(data)
df
#         Name	      Age	gender	      salary
#0	xiaowang	     20.0	        男	 5000.0
#1	          Lily	     30.0	        男	 8000.0
#2	       Anne	     40.0	        女    10000.0

三、DataFrame 列操作

  • DataFrame 可以使用列标签来完成数据的选取、添加和删除操作。下面依次对这些操作进行介绍。

1. 选取数据列

  • 可以使用列索引,轻松实现数据选取。
  • 我们通过字典创建 DataFrame,定义行标签,单独选取每一列并输出。
data = {'Name':['关羽', '刘备', '张飞', '曹操'],'Age':[28,34,29,42]}
index = ["rank1", "rank2", "rank3", "rank4"]
df = pd.DataFrame(data, index=index)
print(df)
print("=========df['Name']:取得Name列===============")
print(df['Name'])
print("=========df['Age']:取得Age列===============")
print(df['Age'])
#      Name  Age
#rank1   关羽   28
#rank2   刘备   34
#rank3   张飞   29
#rank4   曹操   42
#=========df['Name']:取得Name列===============
#rank1    关羽
#rank2    刘备
#rank3    张飞
#rank4    曹操
#Name: Name, dtype: object
#=========df['Age']:取得Age列===============
#rank1    28
#rank2    34
#rank3    29
#rank4    42
#Name: Age, dtype: int64​
  • 我们也可以同时选取很多列。
print("=========df[['Name', 'Age']]:df选取多列===============")
print(df[['Name', 'Age']])#=========df[['Name', 'Age']]:df选取多列===============
#      Name  Age
#rank1   关羽   28
#rank2   刘备   34
#rank3   张飞   29
#rank4   曹操   42
  • 这里需要注意的是,列不是能使用切片选取多列。
print("=========df不能使用切片选取多列===============")
print(df['Name': 'Age']) 
#=========df不能使用切片选取多列===============
#Empty DataFrame
#Columns: [Name, Age]
#Index: []
  • 如果我直接通过标签位置去获取列,会报错。
df[1]

2. 列添加

  • 使用 columns 列索引标签可以实现添加新的数据列,示例如下。
  • 首先,我们创建初始数据。
d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
   'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)print(df)
#   one  two
#a  1.0    1
#b  2.0    2
#c  3.0    3
#d  NaN    4
  • 然后使用 df[‘列’]= 值,插入新的数据列。
print ("====通过Series添加一个新的列====:")
df['three']=pd.Series([10,20,30],index=['a','b','c'])
print(df)
#​====通过Series添加一个新的列====:
#   one  two  three
#a  1.0    1   10.0
#b  2.0    2   20.0
#c  3.0    3   30.0
#d  NaN    4    NaN
  • 我们也可以将已经存在的数据列相加运算,从而创建一个新的列。
print ("======将已经存在的数据列相加运算,从而创建一个新的列:=======")
df['four']=df['one']+df['three']
print(df)#======将已经存在的数据列相加运算,从而创建一个新的列:=======
#   one  two  three  four
#a  1.0    1   10.0  11.0
#b  2.0    2   20.0  22.0
#c  3.0    3   30.0  33.0
#d  NaN    4    NaN   NaN
  • 如果我们新添加的列当中出现新的行标签,就不会显示出来。
df['error']=pd.Series([10,20,30],index=['b','a','s3'])
print(df)
#   one  two  three  four  error
#a  1.0    1   10.0  11.0   20.0
#b  2.0    2   20.0  22.0   10.0
#c  3.0    3   30.0  33.0    NaN
#d  NaN    4    NaN   NaN    NaN

3. insert() 方法添加

  • 在上述示例中,我们初次使用了 DataFrame 的算术运算,这和 NumPy 非常相似。
  • 除了使用 df[]=value 的方式外,您还可以使用 insert() 方法插入新的列,其语法模板如下:
df.insert(loc, column, value, allow_duplicates=False)
  • 其参数含义如下:
  • loc 表示整型,插入索引,必须验证 0<=loc<=len(列)。
  • column 表示插入列的标签,类型可以是字符串、数字或者散列对象。
  • value 表示数值,必须是 Series 或者数组。
  • allow_duplicates 表示是否允许重复,可以有相同的列标签数据,默认为 False。
  • 具体可见如下例子,我们先生成初始数据,便于后续的操作。
info=[['王杰',18],['李杰',19],['刘杰',17]]
df=pd.DataFrame(info,columns=['name','age'])
print(df)
#  name  age
#0   王杰   18
#1   李杰   19
#2   刘杰   17
  • 这里需要注意的是,我们使用 column 参数。数值 1 代表插入到 columns 列表的索引位置。其中,loc 代表整型,插入索引,必须验证 0<=loc<=len(列)。
    df.insert(1,column=‘score’,value=[91,90,75])
print("=====df.insert插入数据:=======")
print(df)
#=====df.insert插入数据:=======
#  name  score  age
#0   王杰     91   18
#1   李杰     90   19
#2   刘杰     75   17
  • 当然,我们也可以添加重复列标签数据。
df.insert(1,column='score',value=[80,70,90],allow_duplicates=True)
print(df)
#  name  score  score  age
#0   王杰     80     91   18
#1   李杰     70     90   19
#2   刘杰     90     75   17
  • 此时,如果我们单独提取出列标签是 score 的列,那么,两列就都会输出。
df['score']
#score	score
#0	80	91
#1	70	90
#2	90	75
  • 如果我们将 allow_duplicates 参数设置为 False,然后再插入具有相同列标签的数据,就会报错。
df.insert(1,column='score',value=[80,70,90])
# 错误 cannot insert name, already exists

4. 删除数据列

  • 我们通过 del 和 pop() 都能够删除 DataFrame 中的数据列,但区别是,del 没有返回值,而 pop 有返回值,具体示例如下:
  • 首先,我们创建初始数据,便于后面的对比操作。
d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
     'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']),
     'three' : pd.Series([10,20,30], index=['a','b','c'])}
df = pd.DataFrame(d)
print ("Our dataframe is:")
print(df)
#Our dataframe is:
#   one  two  three
#a  1.0    1   10.0
#b  2.0    2   20.0
#c  3.0    3   30.0
#d  NaN    4    NaN
  • 我们使用 del 方法进行删除操作。
del df['one']
print("=======del df['one']=========")
print(df)
#=======del df['one']=========
#   two  three
#a    1   10.0
#b    2   20.0
#c    3   30.0
#d    4    NaN
  • 我们使用 pop 方法进行删除操作。
  • 由于,pop 方法可以返回我们删除的数据,因此,在一定程度上也可以用来提取数据,但是,他也会修改我们的源数据。
res_pop = df.pop('two')
print("=======df.pop('two')=========")
print(df)
print("=======res_pop = df.pop('two')=========")
print(res_pop)
#=======df.pop('two')=========
#   three
#a   10.0
#b   20.0
#c   30.0
#d    NaN
#=======res_pop = df.pop('two')=========
#a    1
#b    2
#c    3
#d    4
#Name: two, dtype: int64

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

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

相关文章

【LeetCode】剑指 Offer(5)

目录 写在前面&#xff1a; 题目&#xff1a; 题目的接口&#xff1a; 解题思路1&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 解题思路2&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 写在最后&#xff1a;…

臻和科技再冲刺港交所上市:近三年亏损14亿元,有股东提前退出

近日&#xff0c;臻和科技集团有限公司&#xff08;下称“臻和科技”&#xff09;再次递交招股书&#xff0c;准备在港交所主板上市。据贝多财经了解&#xff0c;这已经是臻和科技第二次冲刺港交所上市。在此之前&#xff0c;臻和科技曾于2022年9月26日递表&#xff0c;后选择了…

hadoop02【尚硅谷】

HDFS 大数据学习笔记 一、HDFS产出背景及定义 HDFS产生背景 随着数据量越来越大&#xff0c;在一个操作系统存不下所有的数据&#xff0c;那么就分配到更多的操作系统管理的磁盘中&#xff0c;但是不方便管理和维护&#xff0c;迫切需要一种系统来管理多台机器上的文件&#x…

python基于vue的酒店预约管理平台系统

当用户在上一步中的房间展示界面中点击了房间的图片或者名称之后系统会根据房间的ID自动的跳转到房间的详情页面中来&#xff0c;在房间的详情页面中可以看到房间的图片房间的价格房间的详细介绍房间的类型等内容&#xff0c;当用户登录之后还可以根据需要进行对房间进行预定&a…

Vulnhub靶场之PYLINGTON: 1

1.信息收集 1.输入arp-scan 192.168.239.0/24&#xff0c;探索存活主机&#xff0c;发现主机192.168.239.172存活。 2.对存活主机进行端口扫描&#xff0c;发现22(SSH)、80(Web)端口。 3.访问80端口&#xff0c;在浏览器上输出&#xff1a;http://192.168.239.172。 4.查看…

工具篇3.5世界热力图

一、定义 世界热力图是一种地图形式&#xff0c;它使用颜色的变化来显示世界各个地区的某种指标&#xff08;如 GDP、人口、气候等&#xff09;的分布和密度。通常&#xff0c;世界热力图会使用不同的颜色来表示数据的变化&#xff0c;例如使用蓝色表示低值&#xff0c;红色表…

算法leetcode|37. 解数独(rust重拳出击)

文章目录37. 解数独&#xff1a;样例 1&#xff1a;提示&#xff1a;分析&#xff1a;题解&#xff1a;rustgoccpythonjava37. 解数独&#xff1a; 编写一个程序&#xff0c;通过填充空格来解决数独问题。 数独的解法需 遵循如下规则&#xff1a; 数字 1-9 在每一行只能出现…

如何配置git,使其支持多用户

如何配置git&#xff0c;使其支持多用户&#xff1f; 在多数时候&#xff0c; 我们使用git进行操作时&#xff0c;只需要在本地配置一个用户的ssh key&#xff0c;就可以完成基本的pull/push操作。如果现在我有两个github的账号&#xff0c;并需要在一台电脑中操作其中的repo&…

项目管理工具dhtmlxGantt甘特图入门教程(十):服务器端数据集成(下)

这篇文章给大家讲解如何利用dhtmlxGantt在服务器端集成数据。 dhtmlxGantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表&#xff0c;可满足应用程序的所有需求&#xff0c;是完善的甘特图图表库 DhtmlxGantt正版试用下载&#xff08;qun 764149912&#xff09;http…

LVGL WIN32模拟器环境搭建

LVGL WIN32模拟器环境搭建LVGL简介环境搭建IDE 选择模拟器代码下载PC模拟器搭建其他配置项说明LVGL简介 LVGL是一个跨平台、轻量级、易于移植的图形库。因其支持大量特性和其易于裁剪&#xff0c;配置开关众多&#xff0c;且版本升级较快&#xff0c;不同版本之间存在一定的差…

基于springboot+vue的医院信息管理系统

基于springbootvue的医院信息管理系统 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介…

2、登录界面开发

【任务描述】本任务要求使用线性布局以及TextView、EditText、Button等常见控件完成智慧园区登录界面的开发。1、线性布局&#xff08;LinearLayout&#xff09;1.1、LinearLayout概述线性布局&#xff08;LinearLayout&#xff09;主要以水平或垂直方式来排列界面中的控件。并…

【C++修炼之路】20.手撕红黑树

每一个不曾起舞的日子都是对生命的辜负 红黑树实现:RBTree 前言一.红黑树的概念及性质1.1 红黑树的概念1.2 红黑树的性质二.红黑树的结构2.1 红黑树节点的定义2.2 红黑树类的封装三.红黑树的插入情况1&#xff1a;只变色情况2&#xff1a;变色单旋情况3&#xff1a;双旋插入的代…

Docker入门和安装教程

一、Docker入门简介 Docker 是一个基于GO语言开发的开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的Linux机器上&#xff0c;也可以实现虚拟化。 容器是完全使用沙箱机制&#xff0c;相互之间不会…

关于如何在 Grafana 绘制 Apache Hudi Metrics 仪表盘的教程

文章目录前言下载 Prometheus下载 PushgatewayPrometheus 集成 PushgatewayPushgateway 后台执行Prometheus 后台执行在Prometheus中配置PushgatewayApache Hudi Metrics中开启 Pushgateway 推送Grafana 安装和启动Grafana 新增 Apache Hudi Metrics 仪表盘添加 Prometheus 数据…

批处理删除指定文件或文件夹

声明&#xff1a;1-2节参考了 https://blog.csdn.net/weixin_43960383/article/details/1243673841. DEL1.1 DEL 的命令参数使用 del 命令能指定文件&#xff0c;Del (erase)[Drive:][Path]FileName指删除指定文件。指定要删除的文件或文件集的位置和名称。语法格式如下&#x…

XML学习

文章目录XML什么是XML?XML的作用&#xff1f;XML语法文档声明XML注释元素&#xff08;标签&#xff09;xml属性语法规则5.4、xml解析技术介绍dom4j 解析技术&#xff08;重点&#xff09;dom4j 编程步骤&#xff1a;使用遍历标签 获取所有标签中的内容&#xff08;重点&#x…

第十三届蓝桥杯国赛 C++ C 组 Java A 组 C 组 Python C 组 E 题——斐波那契数组(三语言代码AC)

目录1.斐波那契数组1.题目描述2.输入格式3.输出格式4.样例输入5.样例输出6.数据范围7.原题链接2.解题思路3.Ac_code1.Java2.C3.Python1.斐波那契数组 1.题目描述 如果数组 A(a0,a1,⋯.an−1)A(a_0,a_1,⋯.a_{n-1})A(a0​,a1​,⋯.an−1​)满足以下条件, 就说它是一个斐波那契…

如何在类中定义构造方法?

在一个类中定义的方法如果同时满足以下三个条件&#xff0c;该方法称为构造方法&#xff0c;具体如下&#xff1a;1、方法名与类名相同2、在方法名的前面没有返回值类型的声明3、在方法中不能使用return语句返回一个值接下来通过一个案例来演示如何在类中定义构造方法&#xff…

闪光桐人の实习日记(2023年2月20-27日)

前往闪闪の小窝以获得更好的阅读和评论体验 文章目录2023年2月20日&#xff08;Vue入门&#xff09;概念Vue基础Vue中的MVVMVue的体验Vue的生命周期Vue指令Vue组件VueRouter前后端路由的区别工作原理两种模式比较route跟router的区别路由属性导航守卫Vuex概述5种基本对象基本使…