当前位置: 首页 > news >正文

pandas教程:Interfacing Between pandas and Model Code pandas与建模代码间的交互

文章目录

  • Chapter13 Introduction to Modeling Libraries in Python(Python中建模库的介绍)
  • 13.1 Interfacing Between pandas and Model Code(pandas与建模代码间的交互)

Chapter13 Introduction to Modeling Libraries in Python(Python中建模库的介绍)

这一章回顾一下之间pandas的一些特性,希望能在我们处理数据的时候有所帮助。然后会简要介绍两个很有用的建模工具:statsmodelsscikit-learn

13.1 Interfacing Between pandas and Model Code(pandas与建模代码间的交互)

一个通常的工作流程中,在建模之前,会用pandas来加载数据并清理。模型开发过程中,一个很重要的部分就是特征工程(feature engineering),指的是通过数据变换或分析,从原始数据中提取出对建模有用的信息。之前介绍的聚合(aggregation)和GroupBy就经常用于特征工程。

至于什么样才是好的特征工程,这就超出了本书的范围。这里会简单介绍如何在数据处理与建模之间切换。

连接pandas和其他一些分析库的点,通常是Numpy数组。要想把一个DataFrame变为Numpy数组,使用.values属性:

import numpy as np
import pandas as pd
data = pd.DataFrame({'x0': [1, 2, 3, 4, 5], 'x1': [0.01, -0.01, 0.25, -4.1, 0.], 'y': [-1.5, 0., 3.6, 1.3, -2.]})
data
x0x1y
010.01-1.5
12-0.010.0
230.253.6
34-4.101.3
450.00-2.0
data.columns
Index(['x0', 'x1', 'y'], dtype='object')
data.values
array([[ 1.  ,  0.01, -1.5 ],[ 2.  , -0.01,  0.  ],[ 3.  ,  0.25,  3.6 ],[ 4.  , -4.1 ,  1.3 ],[ 5.  ,  0.  , -2.  ]])

变回DataFrame的方法是,传入一个二维ndarray,并指定列名:

df2 = pd.DataFrame(data.values, columns=['one', 'two', 'three'])
df2
onetwothree
01.00.01-1.5
12.0-0.010.0
23.00.253.6
34.0-4.101.3
45.00.00-2.0

.values属性最好用于同质的数据,即数据类型都是数值型。如果有异质的数据,结果会变为python对象:

df3 = data.copy()
df3['strings'] = ['a', 'b', 'c', 'd', 'e']
df3
x0x1ystrings
010.01-1.5a
12-0.010.0b
230.253.6c
34-4.101.3d
450.00-2.0e
df3.values
array([[1, 0.01, -1.5, 'a'],[2, -0.01, 0.0, 'b'],[3, 0.25, 3.6, 'c'],[4, -4.1, 1.3, 'd'],[5, 0.0, -2.0, 'e']], dtype=object)

对于一些模型,我们可能希望使用列中的一部分数据。建议使用loc,然后用values进行索引:

model_cols = ['x0', 'x1']
data.loc[:, model_cols].values
array([[ 1.  ,  0.01],[ 2.  , -0.01],[ 3.  ,  0.25],[ 4.  , -4.1 ],[ 5.  ,  0.  ]])

一些库对于pandas的支持非常好:能自动把DataFrame转换为numpy,并把模型的参数名字作为输出的列名。对于其他的一些库,就必须要自己手动操作了。

在第十二章里,我们学习了pandasCategorical数据类型和pandas.get_dummies函数。假设我们的数据集中有一个非数值列:

data['category'] = pd.Categorical(['a', 'b', 'a', 'a', 'b'],categories=['a', 'b'])
data
x0x1ycategory
010.01-1.5a
12-0.010.0b
230.253.6a
34-4.101.3a
450.00-2.0b

如果想要哑变量来代替category这一列,我们可以创建哑变量,去除category列,然后把结果合并起来:

dummies = pd.get_dummies(data.category, prefix='category')
dummies
category_acategory_b
010
101
210
310
401
data_with_dummies = data.drop('category', axis=1).join(dummies)
data_with_dummies
x0x1ycategory_acategory_b
010.01-1.510
12-0.010.001
230.253.610
34-4.101.310
450.00-2.001

在不同的统计模型上使用哑变量有一些细微的不同。当我们有很多非数值型列的时候,使用Patsy的话会更简单易用一些。关于Patsy的内容会在下一节进行介绍。

相关文章:

pandas教程:Interfacing Between pandas and Model Code pandas与建模代码间的交互

文章目录 Chapter13 Introduction to Modeling Libraries in Python(Python中建模库的介绍)13.1 Interfacing Between pandas and Model Code(pandas与建模代码间的交互) Chapter13 Introduction to Modeling Libraries in Python…...

鸿蒙应用开发-初见:ArkTS

作者:HarderCoder ArkTS ArkTS围绕应用开发在 TypeScript (简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集 ArkTS在TS的基础上扩展了struct和很多的装饰器以达到描述UI和状态管理的目的 基本语法 …...

HTTP 和 HTTPS 之间除了安全性区别外,还有哪些区别

HTTP 和 HTTPS 是两种常见的网络协议,它们都是用于在浏览器和服务器之间传输数据的。但是,它们之间也有一些重要的区别,这些区别涉及到数据的安全性、传输性能、使用成本和搜索排名等方面。本文将从以下几个方面来介绍 HTTP 和 HTTPS 的区别&…...

小内存服务器生存指南 ——SWAP 虚拟内存

人们常说,网络是服务器的生命线,没有了网络,服务器再怎么牛逼,都跑不起来。然而偏偏有这么一票的服务器,它的网络很好,CPU 也很好,就是内存有点小。他们是主机界的独行侠 —— 入门级 VPS 服务器。 前俩天买的一台 TMT 的服务器就是这个类型: 256M 内存CPU 1vCore (2.…...

Linux 内存管理中的 Buffers 和 Cached:理解和区分

引言 当涉及到 Linux 系统的内存管理时,“Buffers” 和 “Cached” 是两个经常会引起混淆的术语。这两个概念都代表了系统内存的一部分,但它们的作用和工作方式有所不同。 区别: Buffers: Buffers(缓冲区&#xff0…...

Linux——使用命令查看文件和文件夹数量

目录 一、相关命令参数解析二、查看当前目录下的文件数量2.1 包含子目录中的文件2.2 不包含子目录中的目录 三、查看当前目录下的文件夹个数3.1 不包含目录中的目录3.2 包含目录中的目录 四、查看当前文件夹下叫某某的文件的数量实例 五、总结 一、相关命令参数解析 "&qu…...

[蓝桥杯训练]———高精度乘法、除法

高精度乘法、除法 一、高精度乘法⭐1.1 初步理解1.1.1 高精度的定义1.1.2 为什么会有高精度1.1.3 高精度乘法的复杂度 1.2 思想讲解1.3 代码实现1.3.1 声明1.3.2 实现高精度乘法1.3.3 整体实现1.3.4 代码测试 二、高精度除法⭐2.1 初步理解2.2 思想讲解2.3 代码实现2.3.1 声明2…...

使用javascript 点击tab栏切换事件代码记录

如下图实现以下两点功能&#xff1a; 这里做代码记录 1. javascript 点击tab栏动态切换内容&#xff0c;并添加active 2. javascript 点击左右图标可以向左或者向右移动元素 第1点功能&#xff1a; // tab栏 <div class"left"><span class"tab act…...

零基础编程入门视频教程,零基础编程从哪学起,分享中文编程工具构件实例

零基础编程入门视频教程&#xff0c;零基础编程从哪学起&#xff0c;分享中文编程工具构件实例 1、零基础编程入门视频教程&#xff0c;系统化编程教程链接 https://jywxz.blog.csdn.net/article/details/134073098?spm1001.2014.3001.5502 2、零基础编程从哪学起 建议初学…...

计算机毕业设计|基于SpringBoot+MyBatis框架的电脑商城的设计与实现(订单和AOP)

计算机毕业设计|基于SpringBootMyBatis框架的电脑商城的设计与实现&#xff08;订单和AOP&#xff09; 该项目分析着重于设计和实现基于SpringBootMyBatis框架的电脑商城。首先&#xff0c;通过深入分析项目所需数据&#xff0c;包括用户、商品、商品类别、收藏、订单、购物车…...

【Skynet 入门实战练习】实现网关服务 | 用户代理 | RPC 协议 | 客户端

文章目录 前言网关服务RPC 协议看门狗服务代理服务客户端逻辑梳理 前言 上两章学习了如何搭建一个项目&#xff0c;简单实现了几个基础模块。本章节会实现基本的客户端与服务端的通信&#xff0c;包括网关&#xff08;gate&#xff09;、看门狗&#xff08;watchdog&#xff0…...

eclipse - jee 建立项目后没有 web.xml

eclipse -- jee 建立项目后没有 web.xml 处理它的方法是&#xff0c;点 File - New - Dynamic Web Project , 此时起一个项目名如M4 然后next 然后next 出现如此所示:...

Miniconda虚拟环境安装(chatglm2大模型安装步骤二)

1.服务器配置 服务器系统&#xff1a;Centos7.9 x64 显卡&#xff1a;RTX3090 &#xff08;24G&#xff09; 2.安装环境 2.1 检查conda是否安装 输入命令&#xff1a;conda -V 如果显示conda 4.7.12&#xff0c;说明已经有不需要安装 2.2 安装Miniconda 在家目录建一个mi…...

C++学习之路(四)C++ 实现简单的待办事项列表命令行应用 - 示例代码拆分讲解

本期示例介绍: 本期示例《待办事项列表应用》展示了一个简单的任务管理系统&#xff0c;用户可以通过命令行界面执行添加任务、删除任务和显示任务列表等操作。 功能描述&#xff1a; 添加任务功能&#xff1a; 用户可以输入任务描述&#xff0c;将新的任务添加到任务列表中。…...

函数指针数组指针数组传参的本质字符指针

&#x1f680; 作者&#xff1a;阿辉不一般 &#x1f680; 你说呢&#xff1a;不服输的你&#xff0c;他们拿什么赢 &#x1f680; 专栏&#xff1a;爱上C语言 &#x1f680;作图工具&#xff1a;draw.io(免费开源的作图网站) 如果觉得文章对你有帮助的话&#xff0c;还请点赞…...

Linux swapon命令教程:如何在Linux中启用和禁用交换空间(附实例教程和注意事项)

Linux swapon命令介绍 Linux的swapon命令用于启用指定设备和文件的交换。当物理内存&#xff08;RAM&#xff09;达到其最大容量时&#xff0c;Linux使用交换空间。如果系统需要更多的内存&#xff0c;而RAM不足&#xff0c;内存中的非活动页面将被移动到交换空间。交换空间是…...

云计算领域的第三代浪潮!

根据IDC不久前公布的数据&#xff0c;2023年上半年中国公有云服务整体市场规模(IaaS/PaaS/SaaS)为190.1亿美元&#xff0c;阿里云IaaS、PaaS市场份额分别为29.9%和27.9%&#xff0c;都远超第二名&#xff0c;是无可置疑的行业领头羊。 随着人工智能&#xff08;AI&#xff09;…...

面试题目总结(一)

1. 谈谈数据库的乐观锁和悲观锁 乐观锁和悲观锁是数据库并发控制中常用的两种策略&#xff0c;用于处理多个事务同时访问和修改同一个数据时的并发冲突问题。 数据库的乐观锁是指在读取数据时&#xff0c;不对数据进行加锁&#xff0c;而是在更新数据时检查数据版本是否发生变…...

建造者设计模式

3. 建造者设计模式 3.1 原理 Builder 模式&#xff0c;中文翻译为建造者模式或者构建者模式&#xff0c;也有人叫它生成器模式。 建造者模式是用来创建一种类型的复杂对象&#xff0c;通过设置不同的可选参数&#xff0c;“定制化”地创建不同的对象。 创建者模式主要包含以…...

YOLO目标检测——垃圾检测数据集下载分享【含对应voc、coco和yolo三种格式标签】

实际项目应用&#xff1a;智能化垃圾分类系统、垃圾回收和处理领域的优化管理等方面数据集说明&#xff1a;垃圾分类检测数据集&#xff0c;真实场景的高质量图片数据&#xff0c;数据场景丰富&#xff0c;含报纸、蛋壳、矿泉水瓶、电池、拉链顶罐、塑料餐盒、纸质药盒、香蕉皮…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...