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

Python---数据分析(Pandas六:二维数组DataFrame,DataFrame的创建,DataFrame的属性)

一、 二维数组DataFrame

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

二、DataFrame的创建

        在Pandas中,使用DataFrame来创建二维数组DataFrame

class pandas.DataFrame(data=None, index=None, columns=None, 
dtype=None, copy=None)
描述说明
data

列表,其中每个元素是一行数据。

字典,其中键是列名,值是列值(列表或数组)。

2d-Ndarray。

Series对象,每个 Series成为一列

index行标签,如果没有指定,默认是整数索引[0, ..., n-1],其中 n 是数据中的行数。
columns列标签,如果没有指定,则列标签从数据源中推断。
dtype指定某列的数据类型。如果指定,则所有列都将转换为指定的数据类型。
copy布尔值,默认为False。如果为True,则复制数据;如果为False,则尽可 能避免复制数据

2.1、使用列表创建

import pandas as pd# 创建一个包含学生信息的嵌套列表,每个子列表代表一个学生的姓名、年龄和成绩
data_list = [['小明', 20, 85],['小红', 18, 90],['小刚', 22, 88]
]# 定义列名,分别对应姓名、年龄和成绩
columns = ['姓名', '年龄', '成绩']# 使用pandas库创建一个DataFrame,将数据列表和列名作为参数传入
df = pd.DataFrame(data_list, columns=columns)# 打印DataFrame以查看数据
print(df)

 

2.2、使用字典创建

        可以使用一个字典来创建DataFrame,其中字典的键将作为列名,字典的值可以是列 表、数组等可迭代对象,它们的长度要一致,代表每一列的数据。

import pandas as pd# 定义一个字典,其中包含两组数据:姓名和年龄
data = {'Name': ['Tom', 'Nick', 'John'],  # 'Name' 键对应一个包含姓名的列'Age': [20, 21, 22]               # 'Age' 键对应一个包含年龄的列
}# 使用pd.DataFrame()函数将字典转换为DataFrame对象
# 这里,data字典中的键自动成为DataFrame的列名,值成为列的数据
df = pd.DataFrame(data)# 打印DataFrame对象,查看其内容
print(df)

2.3、使用Ndarray数组创建

import pandas as pd# 创建三个pandas Series对象
s1 = pd.Series(['小明', '小红', '小刚'], name='姓名')
s2 = pd.Series([20, 18, 22], name='年龄')
s3 = pd.Series([85, 90, 88], name='成绩')# 将Series对象组合成一个字典,键是Series的名称,值是Series本身
# 然后将这个字典传递给DataFrame构造函数来创建一个DataFrame
df = pd.DataFrame({s1.name: s1, s2.name: s2, s3.name: s3})# 打印DataFrame对象,查看其内容
print(df)

 

import pandas as pd
import numpy as np# 定义一个二维Ndarray数组,其中包含两组数据:姓名和年龄
data_array = np.array([['Tom', 20],['Nick', 21],['John', 19]
])# 使用pd.DataFrame()函数将二维数组转换为DataFrame对象
df = pd.DataFrame(data_array, columns=['Name', 'Age'])# 打印
print(df)

2.4、使用Series创建

        如果有多个Series对象,也可以将它们组合成一个DataFrame。

import pandas as pd# 创建三个pandas Series对象
s1 = pd.Series(['小明', '小红', '小刚'], name='姓名')
s2 = pd.Series([20, 18, 22, 0], name='年龄')
s3 = pd.Series([85, 90, 88], name='成绩')
s4 = pd.Series(name='test')# 使用concat拼接,并指定轴为1
df = pd.concat([s1, s2, s3, s4], axis=1)# 打印DataFrame对象,查看其内容
print(df)

三、DataFrame的属性

import pandas as pddata = {'姓名': ['小明', '小红', '小刚'],'年龄': [20, 18, 22],'成绩': [85, 90, 88]
}df = pd.DataFrame(data, index=[3, 4, 5])
print(df)

3.1、 index

        返回DataFrame的行索引。

print(df.index)
#Index([3, 4, 5], dtype='int64')

3.2、 columns

        返回DataFrame的列名。

print(df.columns)
#Index(['姓名', '年龄', '成绩'], dtype='object')

3.3、 values

        返回DataFrame中数据的Ndarray表示

print(df.values)
# [['小明' 20 85]
#  ['小红' 18 90]
#  ['小刚' 22 88]]

3.4、 dtypes

        返回每列的数据类型。

print(df.dtypes)
# 姓名    object
# 年龄     int64
# 成绩     int64
# dtype: object

3.5 、shape

        返回DataFrame的形状(行数,列数)。

print(df.shape)
#(3, 3)

3.6、 size

        返回DataFrame中的元素数量。

print(df.size)
#9

3.7、 empty

        返回DataFrame是否为空。

import pandas as pd
import numpy as npdata = [None]df = pd.DataFrame(data, index=['a'])
print(df)print(df.empty)

3.8 、T

        返回DataFrame的转置。

import pandas as pddata = {'姓名': ['小明', '小红', '小刚'],'年龄': [20, 18, 22],'成绩': [85, 90, 88]
}df = pd.DataFrame(data, index=['a', 'b', 'c'])
print(df)res = df.T
print(res)

3.9、 axes

        返回行轴和列轴的列表。

import pandas as pddata = {'姓名': ['小明', '小红', '小刚'],'年龄': [20, 18, 22],'成绩': [85, 90, 88]
}df = pd.DataFrame(data, index=['a', 'b', 'c'])
print(df)print(df.axes)

3.10、 ndim

        返回DataFrame的维度数。对于标准的二维DataFrame,这个值通常是2。

import pandas as pd
data = {
'姓名': ['小明', '小红', '小刚'],
'年龄': [20, 18, 22],
'成绩': [85, 90, 88]
}
df = pd.DataFrame(data, index=['a', 'b', 'c'])
print(df)
print(df.ndim)

3.11 、attrs

        允许用户存储DataFrame的元数据,它是一个字典,可以用来存储任意与 DataFrame相关的额外信息。

import pandas as pddata = {'姓名': ['小明', '小红', '小刚'],'年龄': [20, 18, 22],'成绩': [85, 90, 88]
}df = pd.DataFrame(data, index=['a', 'b', 'c'])
print(df)df.attrs['creator'] = '哈哈哈哈哈哈哈哈哈哈哈'
df.attrs['created_at'] = '2025-3-8'
print(df.attrs)

相关文章:

Python---数据分析(Pandas六:二维数组DataFrame,DataFrame的创建,DataFrame的属性)

一、 二维数组DataFrame DataFrame 是 Pandas 中的一个表格型的数据结构,包含有多列的数据,每列可以是不同的值类型(数值、字符串、布尔型等),DataFrame 即有行索引也有列索引,可以被看做是由 Series 组成的字典。 二、DataFrame的…...

内网安全-横向移动Kerberos 攻击SPN 扫描WinRMWinRSRDP

1.WinRM&WinRS 条件: 双方开启winrm winrs服务 2008版本以上默认开启,win 7默认关闭 检测使用cs内置端口扫描5985开放情况 进行连接 winrs -r:http://192.168.93.30:5985 -u:administrator -p:Whoami2021 whoami 2.内网-spn shell setspn -T …...

深入理解 lt; 和 gt;:HTML 实体转义的核心指南!!!

&#x1f6e1;️ 深入理解 < 和 >&#xff1a;HTML 实体转义的核心指南 &#x1f6e1;️ 在编程和文档编写中&#xff0c;< 和 > 符号无处不在&#xff0c;但它们也是引发语法错误、安全漏洞和渲染混乱的头号元凶&#xff01;&#x1f525; 本文将聚焦 <&#…...

使用uniapp的vite版本进行微信小程序开发,在项目中使用mqtt连接、订阅、发布信息

1、保证在微信公众平台配置socket合法域名 2、项目中使用mqtt 建议在package.json中配置"mqtt": “4.1.0”&#xff0c;使用这个版本的依赖 页面中引入mqtt并配置连接 // ts-ignoreimport * as mqtt from mqtt/dist/mqtt.js; //要使用这里面的const state reacti…...

Trae 实战深度揭秘,开启高效编程新时代

导语 在AI编程工具层出不穷的当下,Trae凭借其独特的功能和强大的性能脱颖而出。它不仅是一款工具,更是提升编程效率、突破开发瓶颈的得力助手。本文将带你深入Trae实战,从项目创建到复杂代码优化,全方位展示Trae的魅力,让你迅速掌握这一编程利器。 一、Trae的安装与环境…...

SEARCH-R1:大型语言模型的多轮搜索推理革命

当AI学会"边搜索边思考" 2025年&#xff0c;语言模型领域迎来重大突破——SEARCH-R1框架通过强化学习&#xff08;RL&#xff09;让大模型实现"动态搜索自主推理"的协同进化。这项技术不仅让模型在回答"泰坦尼克号沉没时的船长是谁"时能自动检索…...

红数码影视(RED Digital Cinema)存储卡格式化后的恢复方法

红数码影视(RED Digital Cinema)的摄像机可以生成两种RAW级高清视频文件&#xff0c;一种是R3D&#xff0c;一种是MOV。其中MOV属于苹果(apple)公司的QT视频封装结构&#xff0c;使用的视频编码是Apple ProRes;而R3D则是RED公司自创的RAW视频文件&#xff0c;这种文件解码需要使…...

关于TVS管漏电流的问题?

问题描述&#xff1a; 在量产的带电池故事机生产中&#xff0c;工厂产线测试电流时&#xff0c;有1台机器电流比正常机器大10mA左右。 原因分析&#xff1a; 1、分析电路原理图&#xff0c;去除可能出现问题的电压或器件&#xff08;不影响系统&#xff09;&#xff0c;发现…...

LS-NET-004-简单二层环路解决(华为锐捷思科)

LS-NET-004-简单二层环路解决&#xff08;华为锐捷思科&#xff09; 以下是为您准备的二层环路示意图及解决方案&#xff0c;包含四大厂商配置对比&#xff1a; 一、Mermaid 二层环路示意图 graph TD SW1 -->|Gi0/1| SW2 SW2 -->|Gi0/2| SW3 SW3 -->|Gi0/3| SW1 SW1…...

区块链交易所平台开发全解析

在数字化飞速发展的今天&#xff0c;区块链技术已成为金融领域的核心驱动力之一。作为数字货币交易的关键平台&#xff0c;区块链交易所的开发不仅涉及复杂的技术环节&#xff0c;还需要兼顾用户体验、安全性、合规性等多个方面。本文将深入探讨区块链交易所平台的开发流程、关…...

Redis 面试思路

分布式redis面试思路俩点 高性能 高并发 高性能 1.存储在内存 所以速度快 2. 线程模型 io多路复用 监控多个客户端socket 放入队列里面 只是文件分发机制是单线程的 处理队列中的数据 根据不同类型 分发给不同处理器 后面处理的过程 也是多线程的 3. 内存回收机制 定期懒惰 …...

蓝桥杯_拔河_java

佬们能不能对思路二提供点建议&#xff0c;一直过不了T_T。 题目 思路 首先感觉有个坑点&#xff0c;就是可以不用把所有学生都选上&#xff0c;但是一定要保证两个部分学生的编号是连续的。比如一共5个人&#xff0c;编号是{1&#xff0c;2&#xff0c;3&#xff0c;4&#xf…...

fastapi 实践(三)Swagger Docs

fastapi 实践&#xff08;一&#xff09;基础 fastapi 实践&#xff08;二&#xff09;异常捕获 fastapi 实践&#xff08;三&#xff09;Swagger Docs fastapi Swagger 1. FastAPI 交互式 API 文档2. 故障解决2.1. FastAPI 访问 docs 显示空白/加载失败2.2. Swagger 报错&…...

每日一题力扣3248.矩阵中的蛇c++

3248. 矩阵中的蛇 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int finalPositionOfSnake(int n, vector<string>& commands) {int i 0;int j 0;for (int k0;k<commands.size();k) {if (commands[k] "RIGHT")j;else if (comma…...

ReentranLock手写

ReentranLock手写 整体概述 MiniLock 是一个自定义的锁实现&#xff0c;模拟了 Java ReentrantLock 的公平锁机制。公平锁的核心思想是“先来后到”&#xff0c;即线程按照请求锁的顺序依次获取锁&#xff0c;避免线程饥饿。代码使用了以下关键组件&#xff1a; state: 表示…...

Channel-wise Knowledge Distillation for Dense Prediction论文阅读和

paper&#xff1a;https://arxiv.org/pdf/2011.13256.pdf code&#xff1a;https://github.com/open-mmlab/mmrazor 这篇paper主要是商汤开源的mmrazor中提及在detection有效果&#xff0c;我之前记录的几篇sota文章虽然在各自的paper中在detection领域都有提及有增益&#…...

deepSpeed多机多卡训练服务器之间,和服务器内两个GPU是怎么通信

DeepSpeed 在多机多卡训练时,主要依赖 NCCL 和 PyTorch Distributed 进行通信。具体来说,分为服务器之间和服务器内两种情况: 1. 服务器之间的通信(跨节点通信) DeepSpeed 采用 NCCL(NVIDIA Collective Communications Library)作为主要的通信后端,结合 PyTorch Distr…...

Mysql-经典实战案例(10):如何用PT-Archiver完成大表的自动归档

真实痛点&#xff1a;电商订单表存储优化场景 现状分析 某电商平台订单表&#xff08;order_info&#xff09;每月新增500万条记录 主库&#xff1a;高频读写&#xff0c;SSD存储&#xff08;空间告急&#xff09;历史库&#xff1a;HDD存储&#xff0c;只读查询 优化目标 …...

centos 7 搭建FTP本地用户

在 CentOS 7 系统上基于本地用户搭建 FTP 服务&#xff0c;可按以下步骤操作&#xff1a; 1. 安装 vsftpd 服务 vsftpd 是一款常用的 FTP 服务器软件&#xff0c;可借助 yum 来安装&#xff1a; bash yum install -y vsftpd2. 启动并设置开机自启 vsftpd 服务 bash systemct…...

HarmonyOS Next~鸿蒙系统功耗优化体系解析:前台交互与后台任务的全场景节能设计

HarmonyOS Next&#xff5e;鸿蒙系统功耗优化体系解析&#xff1a;前台交互与后台任务的全场景节能设计 鸿蒙操作系统&#xff08;HarmonyOS&#xff09;凭借其分布式架构与全场景协同能力&#xff0c;在功耗优化领域实现了从用户交互到系统底层的多维度创新。本文从前台用户低…...

混元视频与万相2.1全面对比分析

混元视频与万相2.1全面对比分析&#xff08;2025版&#xff09; 一、模型背景与技术定位 混元视频&#xff08;HunYuan Video&#xff09; 由腾讯开源&#xff0c;定位为“影视级AI视频生成工具”。核心能力集中在图生视频领域。模型架构基于13B参数规模&#xff0c;强调导演级…...

正则表达式:文本处理的瑞士军刀

正则表达式&#xff1a;文本处理的瑞士军刀 正则表达式&#xff08;Regular Expression&#xff0c;简称 Regex&#xff09;是一种用于匹配、查找和操作文本的强大工具。它通过定义一种特殊的字符串模式&#xff0c;可以快速地在文本中搜索、替换或提取符合特定规则的内容。正…...

【负载均衡系列】HAProxy

HAProxy(High Availability Proxy)是一款高性能的 ​TCP/HTTP 负载均衡器,专注于提供高可用性、灵活性和可靠性。以下是关于HAProxy的详细解析,涵盖其工作原理、工作机制、工作模式等核心方面: 一、HAProxy 工作原理 HAProxy的核心职责是将客户端请求高效、可靠地分发到后…...

设计模式之责任链模式:原理、实现与应用

引言 责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许多个对象有机会处理请求&#xff0c;从而避免请求的发送者与接收者之间的耦合。责任链模式通过将多个处理对象连接成一条链&#xff0c;使得请求沿着链传递&am…...

20250318在ubuntu20.04中安装向日葵

rootrootrootroot-X99-Turbo:~$ sudo dpkg -i SunloginClient_15.2.0.63064_amd64.deb rootrootrootroot-X99-Turbo:~$ sudo apt-get install -f rootrootrootroot-X99-Turbo:~$ sudo dpkg -i SunloginClient_15.2.0.63064_amd64.deb 20250318在ubuntu20.04中安装向日葵 2025/3…...

Kotlin的 noinline和crossinline关键字

noinline 顾名思义&#xff0c;noinline的意思就是不内联&#xff0c;这个关键字只能作用于内联高阶函数的某个函数类型的参数上&#xff0c;表明当前的函数参数不参与高阶函数的内联&#xff1a; inline fun fun1(doSomething1: () -> Unit, noinline doSomething2: () -&…...

区块链交易签名相关知识总结

基础概念 签名流程 安全相关问题 实际场景 代码示例 进阶问题 一、基础概念 1. 为什么区块链交易需要签名&#xff1f; 答案&#xff1a; 身份认证&#xff1a;证明交易由私钥持有者发起。 数据完整性&#xff1a;确保交易内容未被篡改。 抗抵赖性&#xff1a;签名者无…...

Spring Boot集成Redis并设置密码后报错: NOAUTH Authentication required

报错信息&#xff1a; io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required.Redis密码配置确认无误&#xff0c;但是只要使用Redis存储就报这个异常。很可能是因为配置的spring.redis.password没有被读取到。 基本依赖&#xff1a; implementat…...

如何记录Matlab程序运行过程中所占用的最大内存(续)

在上一篇博客中&#xff0c;我们讨论了如何记录Matlab程序运行过程中所占用的最大内存。 博客原文&#xff1a;如何记录Matlab程序运行过程中所占用的最大内存-CSDN博客 但经过测试发现&#xff0c;这与实际有非常大的差异。运行如下例子&#xff1a; clear;clc; profile on…...

分布式节点池:群联云防护抗DDoS的核心武器

一、节点池的核心作用与架构设计 1. 全球分布式节点布局 物理层防御&#xff1a; 根据产品文档&#xff0c;群联在全球部署“海量分布式节点”&#xff0c;每个节点具备独立清洗能力&#xff0c;攻击流量被分散至不同区域节点处理。优势&#xff1a;避免传统单节点防护的瓶颈&…...