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

server/2024/11/26 13:50:44/

目录

0 总结

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

0.2 pd.Dataframe关于括号的原则

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

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

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

python%20%C2%A0pandas.Dataframe-toc" style="margin-left:0px;">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() 方法 同时进行行和列筛选!

pandas.Series(%EF%BC%89-toc" style="margin-left:0px;">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  分清楚几个数据类型和对应的方法的范围

  1. 原生类型,列表list,list=[1,2,3], 
  2. 原生方法 range(1,10,1)
  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

  1. 列表list,list1=[1,2,3], 
  • numpy里
  1. 直接用列表生成np的数组array, arr1=np.array(list1)
  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

python%20%C2%A0pandas.Dataframe">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"]])

pandas.Series(%EF%BC%89">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.ppmy.cn/server/145074.html

相关文章

CVE-2022-4230

打开什么都没有 使用dirsearch扫描到一个wp-admin 访问wp-admin是一个登陆页面 账号密码都在标题中 登陆后是这个页面 在WP Statistics < 13.2.9 – 经过身份验证的 SQLi |CVE 2022-4230 |插件漏洞 (wpscan.com)中&#xff0c;里边有一段对漏洞的描述。 https://wpscan.com…

如何解决DDoS导致服务器宕机?

分布式拒绝服务攻击&#xff08;DDoS攻击&#xff09;是一种常见的网络安全威胁&#xff0c;通过大量恶意流量使目标服务器无法提供正常服务。DDoS攻击可能导致服务器宕机&#xff0c;严重影响业务的正常运行。本文将详细介绍如何检测和防御DDoS攻击&#xff0c;防止服务器宕机…

【ROS2 中间件RMW】基于FastDDS共享内存实现ROS2跨进程零拷贝通讯

前言 谈及ROS2的通讯机制&#xff0c;话题通讯作为一个最为常用的通讯手段&#xff0c;相信大家都不为陌生。但是即便话题通讯提供了一种跨进程的通讯方式&#xff0c;我们难免无法防止其在发布和订阅 的时候传递的消息被进行内存中的一次拷贝。因此诞生了零拷贝(zero_copy)这…

6G通信技术对比5G有哪些不同?

6G&#xff0c;即第六代移动通信技术&#xff0c;是5G之后的延伸&#xff0c;代表了一种全新的通信技术发展方向。与5G相比&#xff0c;6G在多个方面都有显著的不同和提升&#xff0c;以下是对6G通信技术及其与5G差异的详细分析&#xff1a; 一、6G的基本特点 更高的传输速率…

架构-微服务-环境搭建

文章目录 前言一、案例准备1. 技术选型2. 模块设计3. 微服务调用 二、创建父工程三、创建基础模块四、创建用户微服务五、创建商品微服务六、创建订单微服务 前言 ‌微服务环境搭建‌ 使用的电商项目中的商品、订单、用户为案例进行讲解。 一、案例准备 1. 技术选型 maven&a…

Redis 可观测最佳实践

Redis 介绍 Redis 是一个开源的高性能键值对&#xff08;key-value&#xff09;数据库。它通常用作数据库、缓存和消息代理。Redis 支持多种类型的数据结构&#xff0c;Redis 通常用于需要快速访问的场景&#xff0c;如会话缓存、全页缓存、排行榜、实时分析等。由于其高性能和…

40分钟学 Go 语言高并发:【实战】并发安全的配置管理器

【实战】并发安全的配置管理器 一、课程概述 学习要点重要程度掌握目标配置热更新★★★★★理解配置热更新原理&#xff0c;实现动态加载配置并发读写控制★★★★★掌握并发安全的读写控制机制观察者模式★★★★☆理解并实现配置变更通知机制版本管理★★★★☆实现配置版…

djinn:1 靶场学习小记

一、测试环境&#xff1a; kail攻击机&#xff1a;Get Kali | Kali Linux 靶场镜像&#xff1a;https://download.vulnhub.com/djinn/djinn.ova 描述&#xff1a; 该机器与 VirtualBox 和 VMWare 兼容。DHCP 将自动分配一个 IP。您将在登录屏幕上看到 IP。您必须找到并读取分…