当前位置: 首页 > 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…...

终极UDS安全性与最佳实践指南:确保您的数据安全无忧

终极UDS安全性与最佳实践指南&#xff1a;确保您的数据安全无忧 【免费下载链接】uds &#x1f4c0; Unlimited Google Drive Storage by splitting binary files into base64 项目地址: https://gitcode.com/gh_mirrors/ud/uds UDS&#xff08;Unlimited Drive Storage…...

GNSS-SDR终极指南:解锁软件定义GNSS接收器的5大核心功能

GNSS-SDR终极指南&#xff1a;解锁软件定义GNSS接收器的5大核心功能 【免费下载链接】gnss-sdr GNSS-SDR, an open-source software-defined GNSS receiver 项目地址: https://gitcode.com/gh_mirrors/gn/gnss-sdr GNSS-SDR是一款功能强大的开源软件定义GNSS接收器&…...

高光谱成像基础(十二)光谱重建(Spectral Reconstruction)姑

认识Pass层级结构 Pass范围从上到下一共分为5个层级&#xff1a; 模块层级&#xff1a;单个.ll或.bc文件 调用图层级&#xff1a;函数调用的关系。 函数层级&#xff1a;单个函数。 基本块层级&#xff1a;单个代码块。例如C语言中{}括起来的最小代码。 指令层级&#xff1a;单…...

HL1606 LED灯带PWM驱动库:9/12/15位可配置灰度实现

1. HL1606 LED Strip PWM 库深度技术解析HL1606 是一款经典的串行级联LED驱动芯片&#xff0c;广泛应用于早期RGB LED灯带&#xff08;如Adafruit早期的“NeoPixel前身”方案&#xff09;。与WS2812B等单线协议芯片不同&#xff0c;HL1606采用标准SPI接口配合独立锁存信号&…...

保姆级 uPyPi 教程|从 到 :MicroPython 驱动包一键安装 + 分享全攻略诮

这个代码的核心功能是&#xff1a;基于输入词的长度动态选择反义词示例&#xff0c;并调用大模型生成反义词&#xff0c;体现了 “动态少样本提示&#xff08;Dynamic Few-Shot Prompting&#xff09;” 与 “上下文长度感知的示例选择” 的能力。 from langchain.prompts impo…...

普通数组-238. 除了自身以外数组的乘积(数组、前缀和)

文章目录 一、核心解题思路二、完整可运行代码&#xff08;大厂机考版&#xff09; 力扣地址&#xff1a; 中等&#xff1a;238. 除了自身以外数组的乘积 挺简单的 一、核心解题思路 前缀积数组 prefix&#xff1a;prefix[i] 表示 nums[0..i-1] 所有元素的乘积&#xff08;即…...

AI模型交付即违规?(大模型工程化中的5大高危伦理雷区与司法判例复盘)

第一章&#xff1a;AI模型交付即违规&#xff1f;&#xff08;大模型工程化中的5大高危伦理雷区与司法判例复盘&#xff09; 2026奇点智能技术大会(https://ml-summit.org) 当企业将一个微调后的LLM封装为SaaS服务交付客户时&#xff0c;法律风险可能已在模型权重、提示词模板…...

Armbian系统apt更新太慢?一个脚本搞定清华/阿里云等国内源(Ubuntu 22.04 Jammy实测)

Armbian系统国内软件源优化与磁盘挂载实战指南 引言&#xff1a;为什么需要优化Armbian系统&#xff1f; 对于国内开发者而言&#xff0c;使用Armbian这类基于Debian的轻量级Linux发行版时&#xff0c;最头疼的问题莫过于软件包更新速度缓慢。默认的国外软件源服务器远在海外&a…...

VisionPro 9.6 搭配图漾PS800-E1相机:从环境部署到第一个3D点云显示的完整避坑指南

VisionPro 9.6与图漾PS800-E1相机实战&#xff1a;从零构建3D点云应用的完整指南 当机器视觉工程师第一次拿到图漾PS800-E1双目散斑相机和VisionPro软件时&#xff0c;往往会面临一系列环境配置和调试的挑战。本文将带你从硬件连接到第一个3D点云显示的完整流程&#xff0c;避开…...

第六章:Linux容器与虚拟化技术

...