德州哪里有学做网站的邯郸网络信息工程教育

张小明 2026/1/8 19:31:17
德州哪里有学做网站的,邯郸网络信息工程教育,国家车辆保险网站,网站语言选择复习#xff1a;数据分析的第一步#xff0c;加载数据我们已经学习完毕了。当数据展现在我们面前的时候#xff0c;我们所要做的第一步就是认识他#xff0c;今天我们要学习的就是了解字段含义以及初步观察数据。 本文引用数据信息#xff0c;及文章内容来源请先阅读动手学…复习数据分析的第一步加载数据我们已经学习完毕了。当数据展现在我们面前的时候我们所要做的第一步就是认识他今天我们要学习的就是了解字段含义以及初步观察数据。本文引用数据信息及文章内容来源请先阅读动手学数据分析一1 第一章pandas基础1.4 知道你的数据叫什么——Series 和 DataFrame 初认识在这一部分你会学到pandas的两个核心数据结构Series一维和DataFrame二维表格理解它们分别长什么样、适合装什么数据。能自己写出简单示例用字典创建Series如州名 → 数值映射。用字典创建DataFrame如 state/year/pop 这样的表格数据。重新加载train.csv或上一节保存好的train_chinese.csv并通过df.columns查看每一列的列名。学会两种访问列的方式并理解它们的区别字典访问法df[Cabin]属性访问法df.Cabin知道什么时候必须用中括号索引列名有空格、特殊字符、想用变量名等。学会对比两个 DataFrame如train和test_1的列差异用集合运算找出“测试集中多出的列”。用多种方式删除多余列del、drop(columns...)、pop()或“只保留需要的列”的思路。理解Unnamed: 0这类列名出现的原因通常是保存时把索引写进 CSV、读取时又没指定index_col导致的。用df.drop([...], axis1)实现“临时隐藏几列只看其他列”并理解不加inplaceTrue时只是返回一个“修改后的视图/新对象”原df不会被真正改动。何时适合用inplaceTrue做“原地修改”。1.5 筛选的逻辑——用条件把数据“挑”出来在这一部分你会学到利用布尔条件对 DataFrame 做行筛选例如df[df[Age] 10]获取 10 岁以下乘客。构造多条件筛选并用逻辑运算符组合条件使用表示“同时满足”交集|表示“满足其一”并集~表示取反。理解为什么每个条件外面都必须加一层括号。完成“10 Age 50”的区间筛选并将结果命名为midage。使用reset_index()重置筛选后 DataFrame 的索引理解原索引可能是不连续、不是 0 开始的。明白reset_index()和reset_index(dropTrue)的区别一个保留旧索引为列一个直接丢弃。知道何时需要先重置索引再按“行号感觉”的方式去定位行。使用loc按“标签”选取数据例如选出midage中第 100 行指定列Pclass、Sex的数据。以及多行多列组合选择loc[[100, 105, 108], [Pclass, Name, Sex]]。使用iloc按“位置”选取数据例如用iloc[[100,105,108],[2,3,4]]通过“行号 列号”的方式选择相同的数据。通过对比loc与iloc理解它们的关键区别loc按标签行索引名、列名选取。iloc按位置整数下标选取。切片区间在loc中是闭区间在iloc中是左闭右开1.4 知道你的数据叫什么我们学习pandas的基础操作那么上一节通过pandas加载之后的数据其数据类型是什么呢1.4.1 任务一pandas中有两个数据类型DataFrame和Series通过查找简单了解他们。然后自己写一个关于这两个数据类型的小例子[开放题]importnumpyasnpimportpandasaspdsdata{Ohio:35000,Texas:71000,Oregon:16000,Utah:5000}example_1pd.Series(sdata)example_1data{state:[Ohio,Ohio,Ohio,Nevada,Nevada,Nevada],year:[2000,2001,2002,2001,2002,2003],pop:[1.5,1.7,3.6,2.4,2.9,3.2]}example_2pd.DataFrame(data)example_2Pandas 主要有两个核心数据结构DataFrame和Series 的介绍Pandas 主要有两个核心数据结构以及存储在这些结构中的底层数据类型dtypes。1. 核心数据结构 (Data Structures)这是 Pandas 中最常用的两个对象Series (序列)定义一维数组对象。理解可以把它看作是 Excel 表格中的一列或者是一个带标签索引的 Python 列表。组成由一组数据Values和一组与之相关的数据标签Index组成。代码示例参考你的example_1# 创建 Seriesspd.Series([1,3,5,np.nan,6,8])DataFrame (数据框)定义二维表格型数据结构。理解可以把它看作是整个Excel 表格或 SQL 表。组成它既有行索引Index也有列索引Columns。你可以把它看作是由多个 Series 组成的字典共用同一个行索引。代码示例参考你的example_2# 创建 DataFramedfpd.DataFrame({A:1.,B:pd.Timestamp(20130102),C:pd.Series(1,indexlist(range(4)),dtypefloat32)})2. 底层数据类型 (Dtypes)这是指存储在 Series 或 DataFrame 单元格中的具体数值类型。你可以通过df.dtypes查看。常见的包括object通常代表字符串String或者是混合类型的数据。int64整数Integer。float64浮点数Float即带小数点的数字。bool布尔值True/False。datetime64日期时间类型。1.4.2 任务二根据上节课的方法载入train.csv文件dfpd.read_csv(./train.csv)df.head(3)也可以加载上一节课保存的train_chinese.csv文件。1.4.3 任务三查看DataFrame数据的每列的名称df.columns1.4.4任务四查看Cabin这列的所有值 [有多种方法]# 字典访问法df[Cabin].head(3)# 属性访问法 / 点号法df.Cabin.head(3)df[Cabin].head(3)、 df.Cabin.head(3)这两种方法的区别这两种方法在当前这个例子中访问名为 “Cabin” 的列效果是完全一样的都返回该列的数据。但是它们在适用场景和灵活性上有很大的区别。以下是详细对比1.df[Cabin](方括号法 / 字典访问法)这是最通用、最推荐的方法。优点支持任意列名如果列名包含空格如First Name、特殊符号如Price($)或数字开头必须用这种方法。支持变量可以使用变量来动态访问列。col_nameCabindf[col_name]# 可行创建新列必须用这种方法来添加新列。df[New_Column]1# 创建成功避免冲突如果列名和 Pandas 的内置方法名重名比如列名叫count,sum,class这种方法依然能准确获取列数据。2.df.Cabin(属性访问法 / 点号法)这是一种语法糖Syntactic Sugar主要是为了写起来方便。优点书写快捷少打两个引号和两个括号。代码补全在 Jupyter Notebook 或 IDE 中输入df.后按 Tab 键通常能自动补全列名。缺点局限性不支持特殊列名如果列名有空格df.First Name❌或特殊字符会报错。不能创建新列df.New_Column 1只会给df对象添加一个普通的 Python 属性而不会在 DataFrame 数据结构中真正添加一列数据。容易冲突如果你的列名叫做shape、index、T或者count使用df.shape访问的是 DataFrame 的形状属性而不是名为 “shape” 的那一列数据。总结建议日常快速查看数据且列名规范无空格、非关键字时可以用df.ColumnName。编写正式脚本、处理复杂列名或创建新列时请务必使用df[ColumnName]。1.4.5 任务五加载文件test_1.csv然后对比train.csv看看有哪些多出的列然后将多出的列删除手动打印表头df.columns进行肉眼对比经过我们的观察发现一个测试集test_1.csv有一列是多余的我们需要将这个多余的列删去test_1pd.read_csv(test_1.csv)test_1.head(3)# 删除多余的列deltest_1[a]test_1.head(3)【思考】还有其他的删除多余的列的方式吗以下是三种删除多余列的方法为避免和上文方法冲突这里对三种方法进行了注释想要测试先注释掉其他删除方法,再重新运行程序。使用 drop() 函数最推荐这是最标准的方法因为它不会像 del 那样直接修改原数据除非你指定 inplaceTrue这在数据处理管道中更安全。 #思考回答 # 方法 A返回一个新的 DataFrame不改变原数据 test_1_clean test_1.drop([a], axis1) # 方法 B直接在原数据上修改加上 inplaceTrue test_1.drop([a], axis1, inplaceTrue) # 方法 C使用 columns 参数更直观不需要写 axis1 test_1.drop(columns[a], inplaceTrue) # axis 参数用于指定操作的方向行还是列。 # axis0 (默认)代表 行 (Rows/Index)。也就是纵向 ↓。 # axis1代表 列 (Columns)。也就是横向 →。 使用 pop() 方法这个方法会删除列同时把被删除的列作为返回值弹出来。如果你需要把删掉的数据存起来备用这个方法很有用。# 删除 a 列并把它的数据赋值给 deleted_col# deleted_col test_1.pop(a)列表切片/筛选保留法与其说是“删除”不如说是“只保留想要的”。当你需要删除的列很多而保留的列很少时这种方法最快。# 只保留 PassengerId 和 Survived其他的都不要了# test_1 test_1[[PassengerId, Survived]]总结对比方法特点适用场景del df[col]Python 原生语法直接修改原数据无返回值。快速删除单列确定不再需要原数据。df.drop()Pandas 专用功能强大支持多列默认不修改原数据。最通用特别是需要删除多列或在链式调用中。df.pop()删除并返回该列数据。删除的同时还需要用到这列数据。df[[col1]]筛选保留。需要删除的列比保留的列多得多时。补充在Pandas 中如何高效、编程化地对比两个 DataFrame 的列差异使用 Python 的集合Set操作来快速找出不同之处。方法使用集合操作 (Set Operations)集合操作可以让你瞬间找出A 有但 B 没有的列差集B 有但 A 没有的列差集两者共有的列交集两者所有的列并集假设你有两个 DataFrametrain和test_1。# 获取列名集合train_colsset(df.columns)test_colsset(test_1.columns)# 1. 找出 test_1 中多出的列 (test_1 有但 train 没有)difftest_cols-train_colsprint(ftest_1 多出的列:{diff})# 2. 找出 train 中多出的列 (train 有但 test_1 没有)# diff_2 train_cols - test_cols# print(ftrain 多出的列: {diff_2})为什么这种方法更高效自动化不需要人工逐个单词去核对避免眼花看错。直接可用结果是一个集合或列表你可以直接把这个结果传给drop()函数来删除多余的列。这里不显示多余的列是因为 如果按顺序执行该程序 那么不同的列在上方已经被删除了.你需要注释或者删除上方程序后重新运行。# 找出 test_1 中多余的列extra_columnsset(test_1.columns)-set(df.columns)print(f多余的列是:{extra_columns})# 如果想直接删除这些多余的列# test_1.drop(columnsextra_columns, inplaceTrue)输出解释Unnamed: 0。这是 Pandas 读取 CSV 文件时非常常见的一个现象。现在去观察一下你输入的两个.csv文件train.csv的第一列是PassengerId然而train_1.csv的第一列是一个无列名的序号列所以读取时就会看到一个叫Unnamed: 0的列。你可以在 CSV 里给这一列补上列名比如“序号”再重新读取一次对比一下输出就会更直观地理解这个现象。它的含义是这通常是 CSV 文件中原本就存在的索引列Index Column但在保存时没有给它起名字或者读取时没有指定它为索引。详细解释来源当你使用df.to_csv(filename.csv)保存文件时默认情况下 Pandas 会把 DataFrame 的行索引0, 1, 2, …也保存进 CSV 文件作为第一列。因为行索引通常没有名字所以 CSV 文件的第一行表头的第一个位置是空的。读取时的表现当你再次用pd.read_csv(filename.csv)读取这个文件时Pandas 发现第一列有数据但表头是空的它就会自动给这一列起一个名字叫做Unnamed: 0意思是第 0 个没有名字的列。如何解决/避免你有以下几种方法处理它方法一读取时指定索引推荐告诉 Pandas 第一列就是索引不要把它当成普通数据列读取。# index_col0 表示把第0列作为行索引test_1pd.read_csv(test_1.csv,index_col0)方法二保存时不保存索引如果你不需要保存行索引通常 0,1,2… 这种默认索引是不需要保存的在保存时加上indexFalse。# 保存时丢弃索引df.to_csv(filename.csv,indexFalse)方法三读取后删除你现在的做法既然已经读进来了就把它删掉。# 把它加入到要删除的列表中deltest_1[Unnamed: 0]# 或者test_1.drop(columns[Unnamed: 0],inplaceTrue)1.4.6 任务六 将[‘PassengerId’,‘Name’,‘Age’,‘Ticket’]这几个列元素隐藏只观察其他几个列元素df.drop([PassengerId,Name,Age,Ticket],axis1).head(3)【思考】对比任务五和任务六是不是使用了不一样的方法(函数)如果使用一样的函数如何完成上面的不同的要求呢【思考回答】如果你希望在原 DataFrame 上永久删除这些列可以在drop()中使用inplaceTrue。本小节只是想“暂时隐藏这几列看一眼效果”所以不加inplace让原数据保持不变。# 思考回答df.head(3)1.5 筛选的逻辑对于表格数据最重要的能力之一就是筛选把自己需要的信息挑出来把当前分析不关心的先丢在一边。下面还是用实战的方式一边写代码一边体会 pandas 的筛选能力。1.5.1 任务一 我们以Age为筛选条件显示年龄在10岁以下的乘客信息。df[df[Age]10].head(3)1.5.2 任务二 以Age为条件将年龄在10岁以上和50岁以下的乘客信息显示出来并将这个数据命名为midagemidagedf[(df[Age]10)(df[Age]50)]midage.head(3)【提示】了解pandas的条件筛选方式以及如何使用交集和并集操作在 Pandas 中进行条件筛选Boolean Indexing时逻辑运算与 Python 原生的and/or有所不同。以下是核心规则和操作方式1. 核心逻辑符号Pandas 使用位运算符来处理向量化的逻辑操作交集 (AND)使用符号含义同时满足所有条件。并集 (OR)使用符号|(竖线)含义只要满足其中一个条件即可。取反 (NOT)使用符号~(波浪号)含义排除满足该条件的数据。2. !!!极其重要的语法规则括号()这是新手最容易报错的地方每个独立的条件必须用括号括起来。错误写法df[df[Age]10df[Age]50]# 报错原因Python 中 的优先级比 高# 它会先尝试计算 10 df[Age]导致逻辑混乱。正确写法df[(df[Age]10)(df[Age]50)]3. 实战示例假设我们要处理泰坦尼克号的数据A. 交集 (AND) - 你的任务二筛选年龄在 10 岁到 50 岁之间的人大于10且小于50# 两个条件都必须为 Truemidagedf[(df[Age]10)(df[Age]50)]B. 并集 (OR)筛选“小孩”或者“老人”小于 10 岁或者大于 50 岁# 只要满足其中一个条件就保留extreme_agedf[(df[Age]10)|(df[Age]50)]C. 列表筛选 (isin)如果你要筛选某个字段等于多个特定值比如筛选 1 等舱和 3 等舱用isin()更简洁它本质上也是一种并集# 等同于 (df[Pclass] 1) | (df[Pclass] 3)df[df[Pclass].isin([1,3])]1.5.3 任务三将midage的数据中第100行的Pclass和Sex的数据显示出来midagemidage.reset_index(dropTrue)midage.head(3)reset_index(dropTrue) 的作用是将 midage 的索引重置为默认的整数索引0, 1, 2, …并且不保留原有的索引列因为 dropTrue。这样做可以让 midage 的索引变得连续、规范方便后续按位置(或标签)访问或数据处理避免因索引混乱导致的错误。如果不加 dropTrue即写成 midage midage.reset_index()原有的索引会被还原为一列变成 DataFrame 的普通数据列而不是被直接丢弃。具体表现为新的 DataFrame 会多出一列名为 “index”或原索引名内容是原来的索引值。索引会被重置为默认的 0, 1, 2, …。这样做的结果是原索引信息不会丢失而是以新的一列保留在数据中。如果你不需要原索引建议加 dropTrue否则会多出一列。简要总结这行代码让 midage 的索引变为默认的连续数字索引并且丢弃原来的索引不再作为新的一列保留。【思考】这个reset_index()函数的作用是什么如果不用这个函数下面的任务会出现什么情况reset_index() 函数是 Pandas DataFrame 的一个方法主要作用是将索引index还原为普通列并生成新的默认整数索引。常见用法有df.reset_index()将当前索引变为普通列索引重置为默认的 0, 1, 2, …df.reset_index(dropTrue)将索引重置为默认整数索引但不保留原索引为列。如果不用 reset_index()在某些操作如 groupby、set_index、过滤等后DataFrame 的索引可能不是默认的整数索引而是某些列的值或多级索引。这样会导致数据显示时索引不是连续数字可能影响可读性。后续按位置如 iloc或合并、可视化等操作时索引不规范可能导致报错或结果异常。某些情况下索引列不会参与普通的列运算或输出容易遗漏。举例说明假设 groupby 后df2df.groupby(A).sum()print(df2)此时 ‘A’ 变成了索引。如果你想让 ‘A’ 重新变成普通列可以用df2df2.reset_index()如果不 reset_index后续用 df2[‘A’] 会报错因为 ‘A’ 只是索引不是普通列。总结reset_index() 让索引变回普通列保证数据结构统一便于后续处理。如果不用可能导致数据操作和结果出现问题。# 将midage的数据中第100行的Pclass和Sex的数据显示出来midage.loc[[100],[Pclass,Sex]]1.5.4 任务四使用loc方法将midage的数据中第100105108行的PclassName和Sex的数据显示出来midage.loc[[100,105,108],[Pclass,Name,Sex]]1.5.5 任务五使用iloc方法将midage的数据中第100105108行的PclassName和Sex的数据显示出来midage.iloc[[100,105,108],[2,3,4]]【思考】对比iloc和loc的异同iloc和loc都是 Pandas 中用于选取 DataFrame 或 Series 数据的索引器相同点都可以用于行、列的选取和切片。都支持单个、多个、切片、布尔数组等多种索引方式。不同点ilocinteger locationloclabel location索引方式只能用整数位置0, 1, 2, …用标签行/列名包含性切片时结尾不包含左闭右开切片时结尾包含左闭右闭典型用法df.iloc[0:3, 1:3]df.loc[‘a’:‘c’, ‘col1’:‘col3’]错误类型超出范围时报 IndexError标签不存在时报 KeyError举例# iloc 按位置df.iloc[0:2,1:3]# 选第0、1行第1、2列# loc 按标签df.loc[row1:row3,A:C]# 选标签从row1到row3列A到C都包含结尾总结iloc 用于“按位置”取数据适合数字索引。loc 用于“按标签”取数据适合行名、列名索引。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

移动电商网站开发需求文档1 建设好自媒体门户网站

第一章:负荷突变难掌控?Agent协同预测模型让电力调度提前72小时预警在现代电网运行中,电力负荷的突发性波动常导致调度滞后、设备过载甚至区域停电。传统预测模型依赖历史数据线性外推,难以捕捉极端天气、突发事件或大规模用电行为…

张小明 2026/1/3 3:24:31 网站建设

公司网站建设申请报告自贡百度做网站多少钱

企业网站后台管理系统富文本编辑器Word/公众号内容导入功能集成方案 需求分析与技术评估 作为吉林某国企项目负责人,我们近期需要对现有企业网站后台管理系统的文章发布模块进行功能升级,主要需求如下: 核心需求: 在FCKEditor…

张小明 2026/1/3 3:24:29 网站建设

金华专业的网站建设巩义网站建设指标点

大数据领域Eureka服务发现一致性问题深度探讨:原理、挑战与解决方案 一、引言:大数据场景下的服务发现痛点 假设你是某互联网公司的大数据工程师,负责维护一个支撑日均10TB数据处理的Spark集群。某天凌晨,运营团队紧急反馈&…

张小明 2026/1/3 3:24:27 网站建设

禁止国内ip访问 网站手机网速

特征值、特征向量计算与图最短路径算法解析 1. 特征值与特征向量计算 1.1 幂法复杂度 一般情况下,幂法的收敛条件 (n_{\epsilon}) 主要取决于矩阵 (A) 的谱性质,即 (|\lambda_2 / \lambda_1|) 的比值,而与矩阵 (A) 的阶数 (N) 无关。因此,幂法的时间复杂度与矩阵 (A) 的非…

张小明 2026/1/3 3:24:24 网站建设

检查网站的死链接抖音小程序开发工具

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

张小明 2026/1/3 3:24:22 网站建设

增城商城网站建设怎么看深圳网站页面设计

Linux 后台办公基础设施:开源解决方案的全面解析 在企业环境中,开源解决方案正逐渐成为满足各种服务需求的重要选择。无论是数据库管理、服务器管理,还是网络安全和通信,Linux 和相关开源软件都提供了丰富的工具和技术。以下将详细介绍一些值得关注的开源解决方案。 Webm…

张小明 2026/1/3 12:46:48 网站建设