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

【小白学机器学习33】 大数定律python的 pandas.Dataframe 和 pandas.Series基础内容

目录

0 总结

0.1pd.Dataframe有一个比较麻烦琐碎的地方,就是引号 和括号

0.2 pd.Dataframe关于括号的原则

0.3  分清楚几个数据类型和对应的方法的范围

0.4 几个数据结构的构造关系

list → np.array(list) → pd.Series(np.array)/pd.Dataframe

1 python 里的 pandas.Dataframe

2 pd.concat() 可以合并 pd.Dataframe

2.1 pd.concat() 合并规则

3  pd.Dataframe.drop() 删除行列的操作

4 pd.Dataframe 列操作

5 pd.Dataframe 行操作

5.1 sample_dataframe2.head(n=2) 取前面的n行,不能任意

5.2 sample_dataframe2.query("查询条件")取前面的n行,不能任意

6 可以用pd.Dataframe().query() 方法 同时进行行和列筛选!

7  序列 pandas.Series()

7.1 什么是序列

7.2 将pd.Dataframe取出1列会变成pd.Series

7.3 序列 pd.series 和数组array() 的转化


0 总结

0.1pd.Dataframe有一个比较麻烦琐碎的地方,就是引号 和括号

  • ""用的比较多,记住这个原则:
  •  pd.Dataframe所有的方法里,基本都是加一个""括起来基本就够了,很少有多处多重引号的。

0.2 pd.Dataframe关于括号的原则

  • 关于括号,记住一个原则
  • 1层括号,一般表示一维数组,比如pd.Dataframe[]取出来的一般都是1列/1行等
  • 2层括号,一般表示2维数组,比如pd.Dataframe[[]] 取出来的一般都是一个子二维表
  • 有些地方需要多层的中括号,[] , 比如 [ [ ] ]

0.3  分清楚几个数据类型和对应的方法的范围

  • python原生的
  1. 原生类型,列表list,list=[1,2,3], 
  2. 原生方法 range(1,10,1)
  • numpy和 pandas都是python的大包
  • numpy里
  1. 对应的数据类型,数组array,arr1=np.array([1,2,3])
  2. 专有方法np.arange(1,10,1),np.arange(start=1,stop=10,step=1),

0.4 几个数据结构的构造关系

list → np.array(list) → pd.Series(np.array)/pd.Dataframe

  • python原生的
  1. 列表list,list1=[1,2,3], 
  • numpy里
  1. 直接用列表生成np的数组array, arr1=np.array(list1)
  • pandas里
  1. 用 np.array 为内容,直接生成pd.Series=pd.Series(np.array())
  2. 用 np.array 为列,生成pd.Dataframe({key1: np.array(),key2: np.array()})
  3. 取出pd.Dataframe的某列,生成pd.Series
  4. pd.Series.values()= np.array

1 python 里的 pandas.Dataframe

  • 本质是一个二维表
  • 特殊点,在于多了一个默认的序号列
  • 语法
  • pd.Dataframe({key1:value1,key2:value2})

2 pd.concat() 可以合并 pd.Dataframe

2.1 pd.concat() 合并规则

  • pd.concat() 语法
  • pd.concat([pd.Dataframe1,pd.Dataframe1],axis=0/1) 
  • pd.concat() 可以指定合并的方向,默认是axis=0,也就是按行的方向合并
  • pd.concat() 可以指定合并的方向,如果是axis=1,就是按列的方向进行合并
import numpy as np
import pandas as pd
import scipy as sp# 可以用list 生成np.array()
sample_array1=np.array([1,2,3])
sample_array2=np.array([10,20,30])
sample_array3=np.array([100,200,300])# 进一步,可以用np.array()生成pd.Series
# 注意pd.Series 首字母一定大写
sample_series1=pd.Series(sample_array1)
print(sample_series1)
print()# 进一步,也可以用np.array()生成pd.DataFrame
# 注意pd.DataFrame 首字母一定大写
sample_dataframe1=pd.DataFrame({"col1":sample_array1,"col2":sample_array2,"col3":sample_array3,})
print(sample_dataframe1)
print()sample_dataframe2=pd.DataFrame({"col1":sample_array1,"col2":sample_array2+1,"col3":sample_array3+1,})
print(sample_dataframe2)
print()print(pd.concat([sample_dataframe1,sample_dataframe2]))  # pd.concat()默认合并是axis=0, 按行合并
print()print(pd.concat([sample_dataframe1,sample_dataframe2],axis=1))
print()

3  pd.Dataframe.drop() 删除行列的操作

  • pd.Dataframe.drop()
  • pd.Dataframe.drop("行名/列名",axis=0/1)
  • axis=0 是行
  • 注意:列名一般是字符串,如 "col1"
  • 注意:行名一般是数字,如 1

4 pd.Dataframe 列操作

  • pd.Dataframe 数据帧
  • 操作列的办法有两种
  1. 直接引用 pd.Dataframe 对象的属性,pd.Dataframe.列名(不加字符串引号)
  2. 类切片的列操作方法
  3. pd.Dataframe["列名1"]
  4. pd.Dataframe[["列名1","列名2","列名3"]]  #注意是双层中括号

5 pd.Dataframe 行操作

  • 行操作有两种方法
  • sample_dataframe2.head() 方法
  • sample_dataframe2.query()方法

5.1 sample_dataframe2.head(n=2) 取前面的n行,不能任意

  • n 只能是前面的连续列
print(sample_dataframe2)
print()
print(sample_dataframe2.head(n=2))

5.2 sample_dataframe2.query("查询条件")取前面的n行,不能任意

  • sample_dataframe2.query("查询条件")
  • sample_dataframe2.query("可以是任意的一个行条件,不要求非是index的值!")
  • sample_dataframe2.query("条件1 | 条件2")      # or  关系
  • sample_dataframe2.query("条件1& 条件2")      # and关系

6 可以用pd.Dataframe().query() 方法 同时进行行和列筛选!

print(sample_dataframe2.query("col3==301")[["col2","col3"]])

7  序列 pandas.Series()

7.1 什么是序列

  • 特殊之处:默认带一个序号列
  • 可以认为是带 序号的 数组/列表
  • pandas.Series( data, index, dtype, copy)

data:输入的数据,可以是列表、常量、ndarray 数组等。
index:索引值必须是唯一的,与data的长度相同,默认为np.arange(n)
dtype:数据类型
copy:是否复制数据,默认为false

7.2 将pd.Dataframe取出1列会变成pd.Series

  • 将pd.Dataframe取出1列会变成pd.Series
  • 也就是说 pd.Series 是  pd.Dataframe 的其中1列!
  • 注意方法不同有差别
  • 如果是单取出1列,生成pd.Series
  • 如果是单取出多列,生成的只是更小的pd.Dataframe,并不是pd.Series,很好理解,不要搞错。
print(sample_dataframe2)
print()
print(sample_dataframe2.col2)
print()
print(sample_dataframe2["col2"])
print()
print(sample_dataframe2[["col2"]])
print()print(type(sample_dataframe2))
print()
print(type(sample_dataframe2.col2))
print()
print(type(sample_dataframe2["col2"]))
print()
print(type(sample_dataframe2[["col2"]]))

7.3 序列 pd.series 和数组array() 的转化

  • pd.series.values 即可以生成对应的 np.array() 数组!
print(sample_dataframe2)
print()
print(sample_dataframe2.col2)
print()
print(sample_dataframe2.col2.values)
print()print(type(sample_dataframe2))
print()
print(type(sample_dataframe2.col2))
print()
print(type(sample_dataframe2.col2.values))
print()

相关文章:

【小白学机器学习33】 大数定律python的 pandas.Dataframe 和 pandas.Series基础内容

目录 0 总结 0.1pd.Dataframe有一个比较麻烦琐碎的地方,就是引号 和括号 0.2 pd.Dataframe关于括号的原则 0.3 分清楚几个数据类型和对应的方法的范围 0.4 几个数据结构的构造关系 list → np.array(list) → pd.Series(np.array)/pd.Dataframe 1 python 里…...

【shodan】(五)网段利用

shodan基础(五) 声明:该笔记为up主 泷羽的课程笔记,本节链接指路。 警告:本教程仅作学习用途,若有用于非法行为的,概不负责。 nsa ip address range www.nsa.gov需科学上网 搜索网段 shodan s…...

LeetCode739. 每日温度(2024冬季每日一题 15)

给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。 示例 1: 输入: temperatu…...

Node.js的http模块:创建HTTP服务器、客户端示例

新书速览|Vue.jsNode.js全栈开发实战-CSDN博客 《Vue.jsNode.js全栈开发实战(第2版)(Web前端技术丛书)》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com) 要使用http模块,只需要在文件中通过require(http)引入即可。…...

加菲工具 - 好用免费的在线工具集合

加菲工具 https://orcc.online AI 工具 加菲工具 集合了目前主流的,免费可用的ai工具 文档处理 加菲工具 pdf转word、office与pdf互转等等工具都有链接 图片图标 加菲工具 统计了好用免费的在线工具 编码解码 加菲工具 base64编码解码、url编码解码、md5计算…...

.NET9 - 新功能体验(二)

书接上回,我们继续来聊聊.NET9和C#13带来的新变化。 01、新的泛型约束 allows ref struct 这是在 C# 13 中,引入的一项新的泛型约束功能,允许对泛型类型参数应用 ref struct 约束。 可能这样说不够直观,简单来说就是Span、ReadO…...

map和redis关系

Map 和 Redis 都是用于存储和管理数据的工具,但它们在用途、实现和应用场景上有所不同。下面详细解释 Map 和 Redis 之间的关系和区别。 1. Map 数据结构 定义 Map 是一种数据结构,用于存储键值对(key-value pairs)。每个键都是…...

《数据结构》学习系列——图(中)

系列文章目录 目录 图的遍历深度优先遍历递归算法堆栈算法 广度优先搜索 拓扑排序定义定理算法思想伪代码 关键路径基本概念关键活动有关量数学公式伪代码时间复杂性 图的遍历 从给定连通图的某一顶点出发,沿着一些边访问遍图中所有的顶点,且使每个顶点…...

探索Python的HTTP之旅:揭秘Requests库的神秘面纱

文章目录 **探索Python的HTTP之旅:揭秘Requests库的神秘面纱**第一部分:背景介绍第二部分:Requests库是什么?第三部分:如何安装Requests库?第四部分:Requests库的五个简单函数使用方法第五部分&…...

Python 爬虫从入门到(不)入狱学习笔记

爬虫的流程:从入门到入狱 1 获取网页内容1.1 发送 HTTP 请求1.2 Python 的 Requests 库1.2 实战:豆瓣电影 scrape_douban.py 2 解析网页内容2.1 HTML 网页结构2.2 Python 的 Beautiful Soup 库 3 存储或分析数据(略) 一般爬虫的基…...

IDEA优雅debug

目录 引言一、断点分类🎄1.1 行断点1.2 方法断点1.3 属性断点1.4 异常断点1.5 条件断点1.6 源断点1.7 多线程断点1.8 Stream断点 二、调试动作✨三、Debug高级技巧🎉3.1 watch3.2 设置变量3.3 异常抛出3.4 监控JVM堆大小3.5 数组过滤和筛选 引言 使用ID…...

wp the_posts_pagination 与分类页面搭配使用

<ul> <?php while( have_posts() ) : the_post(); <li > <a href"<?php the_permalink(); ?>"> <?php xizhitbu_get_thumbnail(thumb-pro); ?> </a> <p > <a href&q…...

大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; Java篇开始了&#xff01; 目前开始更新 MyBatis&#xff0c;一起深入浅出&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff0…...

【Python】分割秘籍!掌握split()方法,让你的字符串处理轻松无敌!

在Python开发中&#xff0c;字符串处理是最常见也是最基础的任务之一。而在众多字符串操作方法中&#xff0c;split()函数无疑是最为重要和常用的一个。无论你是Python新手&#xff0c;还是经验丰富的开发者&#xff0c;深入理解并熟练运用split()方法&#xff0c;都将大大提升…...

免费实用在线AI工具集合 - 加菲工具

免费在线工具-加菲工具 https://orcc.online/ 在线录屏 https://orcc.online/recorder 时间戳转换 https://orcc.online/timestamp Base64 编码解码 https://orcc.online/base64 URL 编码解码 https://orcc.online/url Hash(MD5/SHA1/SHA256…) 计算 https://orcc.online/h…...

正则表达式灾难:重新认识“KISS原则”的意义

RSS Feed 文章标题整理 微积分在生活中的应用与思维启发 捕鹿到瞬时速度的趣味探索 微积分是一扇通往更广阔世界的门&#xff0c;从生活中学习思维的工具。 数据库才是最强架构 你还在被“复杂架构”误导吗&#xff1f; 把业务逻辑写入数据库&#xff0c;重新定义简单与效率。…...

eNSP-缺省路由配置

缺省路由是一种特殊的静态路由&#xff0c;其目的地址为0.0.0.0&#xff0c;子网掩码为0.0.0.0。 1.拓扑图搭建 2.配置路由器 AR2 <Huawei>sys #进入系统视图 [Huawei]ip route-static 0.0.0.0 0.0.0.0 192.168.3.2 #设置缺省路由 [Huawei]q #返回上一层 <Huawe…...

solr 远程命令执行 (CVE-2019-17558)

漏洞描述 Apache Velocity是一个基于Java的模板引擎&#xff0c;它提供了一个模板语言去引用由Java代码定义的对象。Velocity是Apache基金会旗下的一个开源软件项目&#xff0c;旨在确保Web应用程序在表示层和业务逻辑层之间的隔离&#xff08;即MVC设计模式&#xff09;。 Apa…...

STM32端口模拟编码器输入

文章目录 前言一、正交编码器是什么&#xff1f;二、使用步骤2.1开启时钟2.2配置编码器引脚 TIM3 CH1(PA6) CH2 (PA7)上拉输入2.3.初始化编码器时基2.4 初始化编码器输入2.5 配置编码器接口2.6 开启定时器2.7获取编码器数据 三、参考程序四、测试结果4.1测试方法4.2串口输出结果…...

Centos 8, add repo

Centos repo前言 Centos 8更换在线阿里云创建一键更换repo 自动化脚本 华为Centos 源 , 阿里云Centos 源 华为epel 源 , 阿里云epel 源vim /centos8_repo.sh #!/bin/bash # -*- coding: utf-8 -*- # Author: make.han...

3个关键步骤:Smiley Sans字体技术优化指南

3个关键步骤&#xff1a;Smiley Sans字体技术优化指南 【免费下载链接】smiley-sans 得意黑 Smiley Sans&#xff1a;一款在人文观感和几何特征中寻找平衡的中文黑体 项目地址: https://gitcode.com/gh_mirrors/smi/smiley-sans 在当今数字化时代&#xff0c;网页性能直…...

20 分钟教你零基础部署 OpenClaw 到 Windows 电脑

1. OpenClaw 是什么&#xff1f; OpenClaw 是一款本地运行的 AI 自动化工具&#xff0c;你可以把它理解成一个 “能听懂自然语言的电脑助手”。 它不需要依赖云端服务&#xff0c;所有数据都存在你自己的电脑里&#xff0c;你只需要用中文 / 英文说一句话&#xff0c;它就能帮…...

Gemini提示词反推教程!“图生图”来了

看到一张心仪的室内设计图&#xff0c;却不知道如何描述它的高级美&#xff1f; 其实&#xff0c;每一张令人惊艳的图片背后&#xff0c;都有一套隐藏的代码。今天&#xff0c;我们要分享一套“保姆级”教程&#xff1a;利用 MetaChat 平台上的 Gemini 3.1 Pro 充当你的私人审美…...

vLLM-v0.17.1惊艳效果:束搜索+并行采样在长文本生成中的稳定性展示

vLLM-v0.17.1惊艳效果&#xff1a;束搜索并行采样在长文本生成中的稳定性展示 1. vLLM框架核心能力概览 vLLM是一个专为大型语言模型(LLM)设计的高性能推理和服务库&#xff0c;其最新版本v0.17.1在长文本生成稳定性方面取得了显著突破。这个开源项目最初由加州大学伯克利分校…...

【实战】Ubuntu20.04硬盘挂载与权限管理全攻略(从分区合并到ext4格式化)

1. 从Windows迁移到Ubuntu的硬盘处理痛点 刚接触Ubuntu的Windows用户经常会遇到一个头疼问题&#xff1a;原先在Windows下分好区的机械硬盘&#xff0c;在Ubuntu系统里居然"消失"了。这不是硬盘真的不见了&#xff0c;而是Linux系统对NTFS分区的识别机制不同。我去年…...

解决Redis测试环境搭建难题的try.redis工具:零配置交互式终端功能全解析

解决Redis测试环境搭建难题的try.redis工具&#xff1a;零配置交互式终端功能全解析 【免费下载链接】try.redis A demonstration of the Redis database. 项目地址: https://gitcode.com/gh_mirrors/tr/try.redis 在日常开发中&#xff0c;开发者常常面临Redis测试环境…...

裂隙注浆模拟:当岩层遇上高粘度浆液

在COMSOL中运用水平集法和蠕动流模块模拟裂隙注浆过程&#xff0c;考虑浆液—岩体的耦合作用。 一般而言&#xff0c;裂隙开度越大&#xff0c;浆液所需注入压力越小。 本算例从结果来看可以验证此定律。 裂隙变形的本构取之于已发表的文献。 本算例中&#xff0c;初始时刻裂隙…...

OpenClaw安全配置要点:Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF本地运行权限管理

OpenClaw安全配置要点&#xff1a;Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF本地运行权限管理 1. 为什么需要特别关注OpenClaw的安全配置&#xff1f; 第一次在本地部署OpenClaw时&#xff0c;我犯了一个新手常见的错误——直接使用默认配置启动服务。结果第二天…...

算法 POJ1029

一&#xff0e;题目大意假币描述“金条”银行从可靠来源收到的信息&#xff0c;在他们最后一组的 N 枚硬币中&#xff0c;恰好有一枚硬币是假的&#xff0c;并且重量与其他硬币不同&#xff08;而所有其他硬币的重量都相同&#xff09;。经济危机之后&#xff0c;他们只有一个简…...

B端拓客号码核验行业:痛点剖析、技术突围与发展思考氪迹科技法人 号码筛选系统,阶梯式价格

B端拓客的效率与质量&#xff0c;很大程度上取决于核心决策人触达的精准度&#xff0c;而企业法人、股东、董监高等群体的有效联系方式&#xff0c;正是打通这一环节的关键。作为拓客工作的前置基础性步骤&#xff0c;号码核验的质量直接关联拓客投入的回报效率&#xff0c;更是…...