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

Python学习笔记第五十四天(Pandas DataFrame)

Python学习笔记第五十四天

  • Pandas 数据结构 - DataFrame
    • 使用列表创建
    • 使用 ndarrays 创建
    • 使用字典创建
    • 返回多行数
  • 后记

Pandas 数据结构 - DataFrame

DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。

DataFrame 构造方法如下:

pandas.DataFrame( data, index, columns, dtype, copy)

参数说明:

  • data:一组数据(ndarray、series, map, lists, dict 等类型)。
  • index:索引值,或者可以称为行标签。
  • columns:列标签,默认为 RangeIndex (0, 1, 2, …, n) 。
  • dtype:数据类型。
  • copy:拷贝数据,默认为 False。
  • Pandas DataFrame 是一个二维的数组结构,类似二维数组。

使用列表创建

# 实例 1 
import pandas as pd
data = [['Google',10],['Facebook',12],['Wiki',13]]
df = pd.DataFrame(data,columns=['Site','Age'],dtype=float)
print(df)

在这个例子中,我们使用了一个包含三个列表的列表 data,每个内部列表包含两个元素。然后,我们使用 pd.DataFrame() 函数将这个列表转换为一个 DataFrame 对象,并指定列名为 ‘Site’ 和 ‘Age’,数据类型为浮点数。最后,我们打印这个 DataFrame 对象。

以下实例使用 ndarrays 创建,ndarray 的长度必须相同, 如果传递了 index,则索引的长度应等于数组的长度。如果没有传递索引,则默认情况下,索引将是range(n),其中n是数组长度。

ndarrays 可以参考:NumPy Ndarray 对象

使用 ndarrays 创建

# 实例 2
import pandas as pd
data = {'Site':['Google', 'Facebook', 'Wiki'], 'Age':[10, 12, 13]}
df = pd.DataFrame(data)
print (df)

在这个例子中,我们使用了一个字典 data,其中键是列名,值是相应的 ndarrays。然后,我们使用 pd.DataFrame() 函数将这个字典转换为一个 DataFrame 对象。由于我们没有指定索引,因此默认情况下,索引将是 range(n),其中 n 是数组的长度。最后,我们打印这个 DataFrame 对象。从输出结果可以知道, DataFrame 数据类型一个表格,包含 rows(行) 和 columns(列)。

还可以使用字典(key/value),其中字典的 key 为列名:

使用字典创建

# 实例 3 
import pandas as pd
data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
df = pd.DataFrame(data)
print (df)

若没有对应的部分数据为 NaN。

在这个例子中,我们使用了一个列表 data,其中包含了两个字典。然后,我们使用 pd.DataFrame() 函数将这个列表转换为一个 DataFrame 对象。由于我们没有指定索引,因此默认情况下,索引将是 range(n),其中 n 是字典的个数。由于我们只提供了一个数据行,因此 DataFrame 对象是空的。最后,我们打印这个 DataFrame 对象。

Pandas 的 loc 方法用于选择 DataFrame 的行。在没有设置索引的情况下,索引默认从0开始,所以第一行的索引是0,第二行的索引是1,等等。

# 实例 4
import pandas as pd
data = {"calories": [420, 380, 390],"duration": [50, 40, 45]
}
# 数据载入到 DataFrame 对象
df = pd.DataFrame(data)
# 返回第一行
print(df.loc[0])
# 返回第二行
print(df.loc[1])

注意:返回结果其实就是一个 Pandas Series 数据。

在返回的结果中,你可以看到每行的数据都被封装在一个 Series 中,而列的名字作为 Series 的索引。输出结果的 dtype 部分则表示该列的数据类型。

另外需要注意的是,如果 DataFrame 设置了索引,那么可以通过索引来选择行,而不仅仅是按照顺序选择。例如,如果你有一个 DataFrame,其索引是 [‘a’, ‘b’, ‘c’],那么你可以通过 df.loc[‘a’] 选择索引为 ‘a’ 的行。

返回多行数

Pandas的loc方法确实可以用于选择多行。在你要选择的行索引之间用逗号隔开(使用 [[ … ]] 格式,… 为各行的索引,以逗号隔开),就可以选择多行。例子中,df.loc[[0, 1]]将会选择索引为0和1的两行。

# 实例 5
import pandas as pd
data = {"calories": [420, 380, 390],"duration": [50, 40, 45]
}
# 数据载入到 DataFrame 对象
df = pd.DataFrame(data)
# 返回第一行和第二行
print(df.loc[[0, 1]])

返回结果其实就是一个 Pandas DataFrame 数据。

在这个例子中,你可以看到选择了的数据已经按照原来的格式排列,即“行”是原来的行,“列”是原来的列。

那么我们可以指定索引值

# 实例 6
import pandas as pd
data = {"calories": [420, 380, 390],"duration": [50, 40, 45]
}
df = pd.DataFrame(data, index = ["day1", "day2", "day3"])
print(df)

Pandas的loc方法可以用于根据索引来选择行。

# 实例 6
import pandas as pd
data = {"calories": [420, 380, 390],"duration": [50, 40, 45]
}
df = pd.DataFrame(data, index = ["day1", "day2", "day3"])
# 指定索引
print(df.loc["day2"])

在这个例子中,df.loc[“day2”]将会选择索引为"day2"的行。你可以看到选择了的数据已经按照原来的格式排列,即“行”是原来的行,“列”是原来的列。只不过由于你这次选择的是根据索引而不是行号,所以结果中的行标签是"day2"。

后记

今天学习的是Python Pandas DataFrame学会了吗。 今天学习内容总结一下:

  1. Pandas 数据结构 - DataFrame
  2. 使用列表创建
  3. 使用 ndarrays 创建
  4. 使用字典创建
  5. 返回多行数

相关文章:

Python学习笔记第五十四天(Pandas DataFrame)

Python学习笔记第五十四天 Pandas 数据结构 - DataFrame使用列表创建使用 ndarrays 创建使用字典创建返回多行数 后记 Pandas 数据结构 - DataFrame DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符…...

Docker镜像查看下载删除镜像文件的相关命令

1.镜像相关命令 本地查看有哪些镜像文件: docker images镜像的名称就是我们常见的一些软件,镜像相当于把软件和软件所需要的运行环境打包到一个镜像文件里面,将来在通过这个镜像文件创建出对应的容器,容器有了以后这些软件自动的…...

1. VisionOS平台介绍

介绍 VisionOS 可实现与现实世界无缝集成并与其他虚拟内容共存的 3D 多任务体验。这为个人生产力、生活方式和娱乐应用打开了一个充满新可能性的世界,并为开发人员打开了一个全新的市场。然而,它也带来了围绕多任务处理和与身体互动的新挑战。Unity Poly…...

【C#】设置有线网卡IP地址,子网掩码,网关,DNS

方法 public partial class ComputerInfo{/// <summary>/// 设置IP地址&#xff0c;子网掩码&#xff0c;网关&#xff0c;DNS/// </summary>public static List<NetworkAdapterInfo> SetIpAddressSubMaskDnsGeteway(string ipAddress, string subMask, stri…...

LVS-DR集群及NGINX负载均衡

LVS-DR集群 原理&#xff1a; 1. 当用户向负载均衡调度器&#xff08;Director Server&#xff09;发起请求&#xff0c;调度器将请求发往至内核空间 2. PREROUTING链首先会接收到用户请求&#xff0c;判断目标IP确定是本机IP&#xff0c;将数据包发往INPUT链 3. IPVS是工作在…...

React如何配置env环境变量

React版本&#xff1a; "react": "^18.2.0" 1、在package.json平级目录下创建.env文件 2、在‘.env’文件里配置环境变量 【1】PUBLIC_URL 描述&#xff1a;编译时文件的base-href 官方描述&#xff1a; // We use PUBLIC_URL environment variable …...

VR全景智慧文旅,用科技助力旅游业振兴

引言&#xff1a; 近年来&#xff0c;科技的迅猛发展将我们带入一个全新的数字化时代&#xff0c;而虚拟现实&#xff08;Virtual Reality&#xff0c;简称VR&#xff09;技术则以其令人惊叹的全新方式&#xff0c;影响着各个领域。其中&#xff0c;旅游业作为人们探索世界、体…...

系统架构设计专业技能 · 系统安全分析与设计(四)【加解密、数字信封、信息摘要、数字签名、数字书证、网络安全、信息安全】

系列文章目录 系统架构设计专业技能 网络规划与设计&#xff08;三&#xff09;【系统架构设计师】 系统架构设计专业技能 系统安全分析与设计&#xff08;四&#xff09;【系统架构设计师】 系统架构设计高级技能 软件架构设计&#xff08;一&#xff09;【系统架构设计师…...

基于WebSocket的在线文字聊天室

与Ajax不同&#xff0c;WebSocket可以使服务端主动向客户发送响应&#xff0c;本案例就是基于WebSocket的一个在线聊天室&#xff0c;不过功能比较简单&#xff0c;只能满足文字交流。演示如下。 案例学习于b站up主&#xff0c;链接 。这位up主讲的非常清楚&#xff0c;值得去学…...

VS Code中C++程序的调试(Debug)功能

有一个.vscode文件&#xff0c;存放当前工作区相关配置文件的目录。 launch.json {"version": "0.2.0","configurations": [{"name": "gcc.exe - 生成和调试活动文件", // 该调试任务的名字&#xff0c;启动调试时会在待…...

C#四个字节十六进制与单精度浮点数互转

C#四个字节十六进制与单精度浮点数互转可以使用自带的函数,也可以自己写 实例如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace floatDemo {class Program{//首先设置:项目->属性…...

Springloc和aop的基础概念

什么是控制反转和依赖注入&#xff1f; 控制反转(IoC)和依赖注入(DI)是软件开发中常用的编程范式&#xff0c; 它们极大地提高了代码可维护性和可复用性&#xff0c;简化了代码结构。 什么是控制反转(IoC) 控制反转是- - 种编程模式&#xff0c;它将应用程序中的控制权转移到…...

算法练习Day43|● 518. 零钱兑换 II ● 377. 组合总和 Ⅳ

LeetCode:518. 零钱兑换 II 518. 零钱兑换 II - 力扣&#xff08;LeetCode&#xff09; 1.思路 求组合数&#xff0c;先遍历物品再遍历背包&#xff0c;dp[]数组累加即可。 2.代码实现 1class Solution {2 public int change(int amount, int[] coins) {34 int[…...

人类:我觉得1+1=956446,你觉得呢?大模型:啊对对对

大模型太「听话」了怎么办&#xff1f; 大型语言模型&#xff08;LLM&#xff09;的自然语言理解与生成能力一直备受称赞&#xff0c;特别是 ChatGPT 等对话式语言模型能够与人类流畅、自然地进行多轮对话。然而&#xff0c;最近一篇 Google DeepMind 的论文研究发现 LLM 普遍存…...

Offset Explorer

Offset Explorer 简介下载安装 简介 Offset Explorer&#xff08;以前称为Kafka Tool&#xff09;是一个用于管理和使Apache Kafka 集群的GUI应用程序。它提供了一个直观的UI&#xff0c;允许人们快速查看Kafka集群中的对象以及存储在集群主题中的消息。它包含面向开发人员和管…...

查看CentOS版本及系统位数与设置CentOS 7.9 2009 防火墙配置放开端口的命令与过程

一、查看CentOS版本及系统位数 1.1 命令汇总 //1、安装redhat-lsb yum install -y redhat-lsb//2、查看系统版本信息 lsb_release -a //3、查看系统位数 getconf LONG_BIT1.2 截图 二、设置CentOS7.9 2009 防火墙配置放开端口 2.1 命令汇总 //禁止防火墙开机启动。这种方法方…...

前端css高级

day08-CSS高级 目标&#xff1a;掌握定位的作用及特点&#xff1b;掌握 CSS 高级技巧 01-定位 作用&#xff1a;灵活的改变盒子在网页中的位置 实现&#xff1a; 1.定位模式&#xff1a;position 2.边偏移&#xff1a;设置盒子的位置 leftrighttopbottom 相对定位 posit…...

华为OD真题--字符串中最小的整数和--带答案

1. 华为OD机考题 答案 2023华为OD统一考试&#xff08;AB卷&#xff09;题库清单-带答案&#xff08;持续更新&#xff09; 2023年华为OD真题机考题库大全-带答案&#xff08;持续更新&#xff09; 2. 面试题 一手真实java面试题&#xff1a;2023年各大公司java面试真题汇总--…...

9月30日生效:微软官方服务协议更新,防止人工智能进行逆向工程

微软最近更新了其官方服务协议&#xff0c;新规则将于9月30日生效&#xff0c;包括多个新增和变化&#xff0c;具体细节请参考最新的微软服务协议。 微软最新更新涉及使用Bing Chat聊天机器人、Windows Copilot和Microsoft 365 Copilot服务&#xff0c;引起了广泛关注。这次更新…...

HarmonyOS教育类APP项目实战系列课结课考试答案(1-10讲)80分就合格

王丹辉&#xff08;第一讲&#xff09;&#xff1a;HarmonyOS教育类APP项目实战开课及低代码初体验 结课考试 及格分80/ 满分100 评价 判断题 1. DevEco Studio不能同时支持HarmonyOS和OpenHarmony应用/服务开发 正确(True)错误(False) 回答正确 2. DevEco Studio…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

第25节 Node.js 断言测试

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

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1&#xff09;准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2&#xff09;服务端安装软件&#xff1a;bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

NPOI操作EXCEL文件 ——CAD C# 二次开发

缺点:dll.版本容易加载错误。CAD加载插件时&#xff0c;没有加载所有类库。插件运行过程中用到某个类库&#xff0c;会从CAD的安装目录找&#xff0c;找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库&#xff0c;就用插件程序加载进…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...