怎么在百度建个网站seo高手培训

张小明 2026/1/7 13:08:23
怎么在百度建个网站,seo高手培训,18.ppt网站是谁做的,中国icp备案的有多少企业网站Python DataFrame详解#xff1a;创建、操作与空值处理 在数据分析的日常工作中#xff0c;你是否经常面对这样的场景#xff1a;手头有一堆来自不同系统的数据文件——销售记录是Excel表格#xff0c;用户信息藏在数据库里#xff0c;日志又以CSV形式存在。这些数据格式不…Python DataFrame详解创建、操作与空值处理在数据分析的日常工作中你是否经常面对这样的场景手头有一堆来自不同系统的数据文件——销售记录是Excel表格用户信息藏在数据库里日志又以CSV形式存在。这些数据格式不一、结构混乱甚至充满缺失值和错误标签。如何快速将它们整合成一张清晰可用的表格答案就是pandas 的 DataFrame。它不像Series那样只是一列数据的简单集合而是真正意义上的二维表格行代表样本列代表特征就像一张活的电子表格但功能远比Excel强大得多。无论是读取文件、清洗数据还是做统计分析、构建机器学习特征DataFrame都是贯穿始终的核心载体。从零开始怎样造出一个DataFrame先导入工具包import pandas as pd最简单的办法是用一个普通列表list1 [2, 5, 8, 10] df_l pd.DataFrame(list1)这会生成一个单列的数据框行索引自动设为0, 1, 2, 3列名默认为0。虽然看起来像是一维数组但实际上它已经是二维结构了——只不过宽度只有1而已。但在真实项目中我们更常通过字典来构造带列名的数据dict1 { name: [Tony, Nancy, Judy, Cindy], age: [16, 17, 18, 15], sex: [male, female, female, female] } df_d pd.DataFrame(dict1)每个键变成列名对应值作为该列数据。这种写法直观且贴近业务逻辑推荐作为主要创建方式。还有一种常见情况是按“记录”组织数据比如从接口返回的JSON数组。这时可以用嵌套列表list2 [[Jane, 15, 101], [David, 18, 103], [Peter, 16, 102]] df1 pd.DataFrame(list2, columns[name, age, num])注意这里必须显式指定columns参数否则列名会被自动命名为0, 1, 2。如果你希望自定义行索引比如用ID而不是默认数字也可以加上index参数df1 pd.DataFrame(list2, index[1, 2, 3], columns[name, age, num])这样后续查找或合并时就能直接用业务标识符定位避免混淆。数据怎么查别只会点鼠标拿到一张表第一步当然是看内容。但真正的高手不会盲目打印整个DataFrame而是精准提取所需部分。想看某一列有两种写法df1[name] # 推荐安全通用 df1.name # 简洁但仅当列名合法无空格、不以数字开头才可用不过要注意这样取出的是Series类型。如果你想保留DataFrame结构比如为了后续统一处理记得加双括号df1[[name]] # 返回单列DataFrame要选多列也一样传个列表进去就行df1[[name, num]]结果是一个新DataFrame包含指定列的所有行。那如果想查某一行呢这时候就得请出两个核心索引器loc和iloc。loc是基于标签的关心的是“名字”iloc是基于位置的关心的是“第几个”。举个例子df1.loc[2] # 获取索引标签为2的那一行 df1.iloc[1] # 获取物理位置上的第二行从0开始计数两者输出可能相同但逻辑完全不同。假设你的行索引是[10, 20, 30]那iloc[1]对应的是索引20那一行而loc[20]才是对的。切片操作也很常用df1.iloc[:2] # 前两行位置切片 df1.loc[[1, 3]] # 标签为1和3的两行更进一步同时锁定行列坐标就像在Excel里输入“A2:C5”你可以用loc[row, col]实现精确选取# 取第1、3行name和age列 df1.loc[[1, 3], [name, age]] # 所有行特定列 df1.loc[:, [name, num]] # 特定行所有列 df1.loc[[2, 3], :]支持切片语法而且loc的区间是闭合的df1.loc[1:3, :] # 包含索引1到3的所有行而iloc则遵循Python惯例——左闭右开df1.iloc[0:3, :] # 取第0、1、2行不包括第3行这个细节很容易踩坑尤其是在做批量处理时务必确认你是按标签还是位置访问。新数据来了怎么办动态增补实战现实中的数据不是静态的。今天新增一条用户注册明天补上一份订单记录都需要能灵活扩展的能力。添加一行数据过去常用append()方法但现在官方已标记为弃用。正确的做法是使用pd.concat()new_row pd.DataFrame([[Alice, 17, 104]], columns[name, age, num], index[4]) df_new pd.concat([df1, new_row], ignore_indexFalse)参数说明-ignore_indexTrue拼接后重置行索引为连续整数-False保留原始索引适合有明确业务ID的情况。这种方式不仅兼容性好还能一次合并多个DataFrame适用于日志追加、增量更新等场景。添加一列呢最简单的方式是直接赋值df1[score] [85, 58, 99]但注意不能写成df1.score [...]因为属性赋值无法创建新列。如果你想控制列的位置比如把“得分”插在“年龄”后面就得用insert()df1.insert(loc1, columnscore2, value[77, 78, 79])其中loc1表示插入到第2列的位置从0开始。这在导出报表或对接下游系统时非常有用能确保字段顺序符合规范。脏数据要删删除操作避坑指南不是所有数据都值得留下。重复记录、测试账号、无效字段……该删就得果断下手。删除某几行使用drop()方法配合索引标签df1.drop(index1) # 删除索引为1的行 df1.drop(1, axis0) # 等效写法如果不加inplaceTrue原DataFrame不会改变而是返回一个新的副本。这是函数式编程的好习惯——让每一步变换都可追溯。若确定要就地修改df1.drop(1, axis0, inplaceTrue)删除列也是同理推荐使用columns参数语义更清晰df1.drop(columnsnum) # 删除num列 df1.drop([age, score], axis1) # 一次删多个相比axis1写法columns更直观代码可读性更强尤其在复杂脚本中更容易维护。数据改不动试试 replace 的高级玩法有时候问题不在结构而在内容本身。比如性别字段混用了“男/M/male”年龄填了“未知”这类脏数据需要清洗。replace()是最实用的替换工具支持多种模式单值替换df1[age].replace(15, 25, inplaceTrue)把所有15岁改成25岁听起来奇怪但在脱敏或归类时很常见。多值统一替换df1[age].replace([18, 16], 26, inplaceTrue)将多个数值映射到同一个新值适合做年龄段聚合。字典映射复杂转换利器df1[num].replace({101: 1001, 102: 1002, 103: 1003}, inplaceTrue)这种写法特别适合编码转换、等级升级、状态迁移等场景。比起写一堆条件判断一行代码搞定干净利落。缺失值几乎是不可避免的。Pandas将其统一表示为NaNNot a Number并提供了一套完整的处理机制。先看看数据长什么样data_with_nan { name: [A, B, None, D], age: [20, None, 30, 40], score: [85, 90, None, 78] } df_nan pd.DataFrame(data_with_nan)你会发现None自动变成了NaN这是pandas的标准行为。怎么知道哪里缺了用isnull()或notnull()df_nan.isnull() # True表示为空 df_nan.notnull() # 相反可以结合布尔索引筛选有效数据df_nan[df_nan[age].notnull()] # 只保留age非空的行更常见的需求是统计每列有多少空值df_nan.isnull().sum()这个结果常作为数据质量报告的关键指标帮助你快速评估清洗优先级。删还是留决策取决于上下文直接删掉含空值的行df_nan.dropna() # 默认howany只要有一个NaN就删整行适用于要求严格的场景比如金融风控模型任何缺失都可能导致偏差。但如果只想删全空的行df_nan.dropna(howall) # 所有列都是NaN才删或者你想保留关键字段完整的记录可以用阈值控制df_nan.dropna(axis1, thresh3) # 每列至少要有3个非空值才保留这对宽表特别有用比如用户画像表有上百个特征不可能要求每个都完整。更聪明的做法填补而不是删除很多时候直接删数据太可惜。特别是当样本量有限时合理填补反而能提升模型稳定性。统一填充值df_nan.fillna(0) # 所有NaN填0 df_nan.fillna({age: 18, name: Unknown}) # 按列定制分类变量常用“Unknown”、“Missing”填充数值变量可用0或均值。用前后值填充适合时间序列df_nan.fillna(methodffill) # 向前填充前一个有效值复制下来 df_nan.fillna(methodbfill) # 向后填充比如监控数据偶尔断点用前后时刻的值补上就很自然。统计量填充经典手段mean_age df_nan[age].mean() df_nan[age].fillna(mean_age, inplaceTrue)均值、中位数、众数是最常用的填充策略。对于偏态分布的数据建议用中位数分类变量则用众数。进阶技巧插值法修复趋势数据对于有序变量如时间、温度、股价还可以用数学方法估算缺失值import numpy as np df_time pd.DataFrame({t: [1, 2, np.nan, 4, 5]}) df_time[t].interpolate(inplaceTrue)默认是线性插值也支持polynomial、spline等高级方法。前提是数据本身具有连续性和趋势性否则容易引入噪声。掌握这些技能后你已经具备处理大多数结构化数据的能力能够胜任数据清洗、特征工程、报表生成等典型任务。更重要的是你不再只是被动接受数据而是能主动塑造它的形态。 小贴士在实战中建议优先使用函数式风格避免频繁inplaceTrue让每一步变换都可复现、可调试。毕竟数据分析的本质不是写代码而是讲清楚数据背后的故事。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

百度抓取网站登录最低价网站建设

第一章:从单体到微服务的演进之路在现代软件架构的发展历程中,系统设计正逐步从紧耦合的单体架构向松耦合的微服务架构演进。这一转变不仅反映了技术栈的进步,更体现了对可维护性、可扩展性和敏捷交付的持续追求。单体架构的局限性 传统的单体…

张小明 2026/1/6 0:09:53 网站建设

友情链接做自己的网站有专业制作网站的公司吗

边缘计算AI:在本地服务器部署anything-LLM的可行性分析 如今,越来越多企业开始直面一个现实问题:如何在享受大语言模型(LLM)智能能力的同时,避免将敏感文档上传至第三方云端?尤其是在金融、法律…

张小明 2026/1/5 21:36:26 网站建设

网站开发和后台维护wordpress支持md么

GPT-SoVITS训练数据时间跨度影响:长期语音变化对模型的影响 在虚拟主播、AI配音、辅助沟通等个性化语音应用日益普及的今天,用户越来越希望用“自己的声音”与世界对话。而GPT-SoVITS这类少样本语音克隆技术的出现,让仅凭1分钟录音就能生成高…

张小明 2026/1/5 12:07:01 网站建设

那些企业需要做网站现在哪个网站做电商好

692 前 K 个高频单词:我如何用 HashMap 小根堆把排序规则“塞进堆里” 这道题的规则很明确,但实现时非常容易在细节上出错: 按出现频率从高到低频率相同按字典序升序(字典序小的更靠前)进阶希望做到 O(n log k) 直觉上…

张小明 2026/1/6 8:17:01 网站建设

深圳网站建设 找猴王网络简单手机网站源码下载

社交 AR 应用开发与面部识别技术探索 社交 AR 应用开发 在开发社交 AR 应用时,我们将通过 Graph API 和 FQL 调用实现特定功能。首先,从标准 Graph API 拉取好友列表,再用 FQL 调用获取每个好友的最后签到位置。 准备工作 打开 RootViewController.m ,由于这里设置了…

张小明 2026/1/5 14:08:33 网站建设