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

news2024/11/27 21:10:34

目录

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()

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

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

相关文章

Edge浏览器保留数据,无损降级退回老版本+禁止更新教程(适用于Chrome)

3 个月前阿虚就已经写文章告警过大家,Chromium 内核的浏览器将在 127 以上版本开始限制仍在使用 Manifest V2 规范的扩展:https://mp.weixin.qq.com/s/v1gINxg5vMh86kdOOmqc6A 像是 IDM、油猴脚本管理器、uBblock 等扩展都会受到影响,后续将无…

基于Spring Boot的装饰工程管理系统论文

摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统装饰工程项目信息管理难度大,容错率低&#x…

路由器的工作原理

网络拓扑结构 主机A: IP地址:10.1.0.1/16 MAC地址:MACA 主机B: IP地址:10.2.0.1/16 MAC地址:MACB 网关G0/0/0: IP地址:10.1.0.2/16 MAC地址:MACC 网关G0/0/1&#…

【深度学习|特征增强模块】FFN(前馈神经网络)和E_FFN(增强型前馈神经网络)是transformer特征增强的重要组成部分!

【深度学习|特征增强模块】FFN(前馈神经网络)和E_FFN(增强型前馈神经网络)是transformer特征增强的重要组成部分! 【深度学习|特征增强模块】FFN(前馈神经网络)和E_FFN(增强型前馈神…

51单片机从入门到精通:理论与实践指南(一)

单片机在智能控制领域的应用已非常普遍,发展也很迅猛,学习和使用单片机的人员越来越多。虽然新型微控制器在不断推出,但51单片机价格低廉、易学易用、性能成熟,在家电和工业控制中有一定的应用,而且学好了51单片机&…

java写一个石头剪刀布小游戏

石头剪刀布是一款经典的手势游戏,通常由两人参与,玩法简单且充满趣味。玩家通过出示手势代表“石头”、“剪刀”或“布”,并根据规则比较手势决定胜负。它广泛用于休闲娱乐、决策或解压活动。 一、功能简介 用户与计算机对战。 用户输入选择:石头、剪刀或布。 计算机随机生…

MATLAB深度学习(六)——LSTM长短期神经网络原理与应用

LSTM的应用可以参见一个相当好的视频:小车倒立摆最优控制教程 - Part1 Simulink Simscape Multibody仿真建模_哔哩哔哩_bilibili 6.1 序列建模——循环神经网络 循环神经网络RNN是一类专门用于处理序列性数据x,,xn的神经网络结构&#xff0c…

音视频技术扫盲之预测编码的基本原理探究

预测编码是一种数据压缩技术,广泛应用于图像、视频和音频编码等领域。其基本原理是利用数据的相关性,通过对当前数据的预测和实际值与预测值之间的差值进行编码,从而实现数据压缩的目的。 一、预测编码的基本概念 预测编码主要包括预测器和…

第六届国际科技创新学术交流大会暨信息技术与计算机应用学术会议(ITCA 2024)

重要信息 会议官网:itca2024.iaecst.org 会议时间:2024年12月06-08日 会议地点:中国-广州(越秀国际会议中心) 会议简介 第六届信息技术与计算机应用学术会议(ITCA 2024) 依旧作为第六届国际科技创新学术交流大会…

Leetcode 将有序数组转换为二叉搜索树

算法思想及代码解析: 这段代码的目的是将一个有序数组转换为 高度平衡的二叉搜索树(Balanced Binary Search Tree, BST)。以下是算法的详细解释: 1. 什么是高度平衡的二叉搜索树? 二叉搜索树:对于树中的每…

15 go语言(golang) - 并发编程goroutine原理及数据安全

底层原理 Go 的 goroutine 是一种轻量级的线程实现,允许我们在程序中并发地执行函数。与传统的操作系统线程相比,goroutine 更加高效和易于使用。 轻量级调度 用户态调度:Go 运行时提供了自己的调度器,这意味着 goroutine 的创建…

ESP-KeyBoard:基于 ESP32-S3 的三模客制化机械键盘

概述 在这个充满挑战与机遇的数字化时代,键盘已经成为我们日常学习、工作、娱乐生活必不可少的设备。而在众多键盘中,机械键盘,以其独特的触感、清脆的敲击音和经久耐用的特性,已经成为众多游戏玩家和电子工程师的首选。本文将为…

PyTorch基础05_模型的保存和加载

目录 一、模型定义组件——重构线性回归 二、模型的加载和保存 2、序列化保存对象和加载 3、保存模型参数 一、模型定义组件——重构线性回归 回顾之前的手动构建线性回归案例: 1.构建数据集;2.加载数据集(数据集转换为迭代器);3.参数初…

《Python基础》之函数的用法

一、简介 在 Python 中,函数是一段可重用的代码块,用于执行特定的任务。函数可以帮助你将代码模块化,提高代码的可读性和可维护性。 函数的用途 代码重用:通过函数,你可以将常用的代码块封装起来,避免重复…

java:aqs实现自定义锁

aqs采用模板方式设计模式,需要重写方法 package com.company.aqs;import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.AbstractQueuedSynchronizer; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock;…

【小白学机器学习34】基础统计2种方法:用numpy的方法np().mean()等进行统计,pd.DataFrame.groupby() 分组统计

目录 1 用 numpy 快速求数组的各种统计量:mean, var, std 1.1 数据准备 1.2 直接用np的公式求解 1.3 注意问题 1.4 用print() 输出内容,显示效果 2 为了验证公式的背后的理解,下面是详细的展开公式的求法 2.1 均值mean的详细 2.2 方差…

vue2 中使用 Ag-grid-enterprise 企业版

文章目录 问题Vue2 引入企业版不生效npm run dev 时卡住了94% after seal 卡在这里了测试打包源 git 解决方案记录 问题 我想用企业版的树状表格 Vue2 引入企业版不生效 编译引入 // vue.config.js module.exports {transpileDependencies: ["ag-grid-enterprise"…

RESTful快速开发

(3)RESTful快速开发 (2)中的控制器仍然存在大量的冗余代码 问题1: 每个方法的RequestMapping注解中都定义了访问路径/users,重复性太高 问题2:每个方法的RequestMapping注解中都要使用method属…

万能门店小程序管理系统 doPageGetFormList SQL注入漏洞复现

0x01 产品简介 万能门店小程序管理系统是一款功能强大的工具,旨在为各行业商家提供线上线下融合的全方位解决方案。是一个集成了会员管理和会员营销两大核心功能的综合性平台。它支持多行业使用,通过后台一键切换版本,满足不同行业商家的个性化需求。该系统采用轻量后台,搭…

【作业九】RNN-SRN-Seq2Seq

点击查看作业内容 目录 1 实现SRN (1)使用numpy实现 (2)在(1)的基础上,增加激活函数tanh (3)使用nn.RNNCell实现 (4)使用nn.RNN实现 2 使用R…