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 实体转义的核心指南!!!
🛡️ 深入理解 < 和 >:HTML 实体转义的核心指南 🛡️ 在编程和文档编写中,< 和 > 符号无处不在,但它们也是引发语法错误、安全漏洞和渲染混乱的头号元凶!🔥 本文将聚焦 <&#…...
使用uniapp的vite版本进行微信小程序开发,在项目中使用mqtt连接、订阅、发布信息
1、保证在微信公众平台配置socket合法域名 2、项目中使用mqtt 建议在package.json中配置"mqtt": “4.1.0”,使用这个版本的依赖 页面中引入mqtt并配置连接 // ts-ignoreimport * as mqtt from mqtt/dist/mqtt.js; //要使用这里面的const state reacti…...
Trae 实战深度揭秘,开启高效编程新时代
导语 在AI编程工具层出不穷的当下,Trae凭借其独特的功能和强大的性能脱颖而出。它不仅是一款工具,更是提升编程效率、突破开发瓶颈的得力助手。本文将带你深入Trae实战,从项目创建到复杂代码优化,全方位展示Trae的魅力,让你迅速掌握这一编程利器。 一、Trae的安装与环境…...
SEARCH-R1:大型语言模型的多轮搜索推理革命
当AI学会"边搜索边思考" 2025年,语言模型领域迎来重大突破——SEARCH-R1框架通过强化学习(RL)让大模型实现"动态搜索自主推理"的协同进化。这项技术不仅让模型在回答"泰坦尼克号沉没时的船长是谁"时能自动检索…...
红数码影视(RED Digital Cinema)存储卡格式化后的恢复方法
红数码影视(RED Digital Cinema)的摄像机可以生成两种RAW级高清视频文件,一种是R3D,一种是MOV。其中MOV属于苹果(apple)公司的QT视频封装结构,使用的视频编码是Apple ProRes;而R3D则是RED公司自创的RAW视频文件,这种文件解码需要使…...
关于TVS管漏电流的问题?
问题描述: 在量产的带电池故事机生产中,工厂产线测试电流时,有1台机器电流比正常机器大10mA左右。 原因分析: 1、分析电路原理图,去除可能出现问题的电压或器件(不影响系统),发现…...
LS-NET-004-简单二层环路解决(华为锐捷思科)
LS-NET-004-简单二层环路解决(华为锐捷思科) 以下是为您准备的二层环路示意图及解决方案,包含四大厂商配置对比: 一、Mermaid 二层环路示意图 graph TD SW1 -->|Gi0/1| SW2 SW2 -->|Gi0/2| SW3 SW3 -->|Gi0/3| SW1 SW1…...
区块链交易所平台开发全解析
在数字化飞速发展的今天,区块链技术已成为金融领域的核心驱动力之一。作为数字货币交易的关键平台,区块链交易所的开发不仅涉及复杂的技术环节,还需要兼顾用户体验、安全性、合规性等多个方面。本文将深入探讨区块链交易所平台的开发流程、关…...
Redis 面试思路
分布式redis面试思路俩点 高性能 高并发 高性能 1.存储在内存 所以速度快 2. 线程模型 io多路复用 监控多个客户端socket 放入队列里面 只是文件分发机制是单线程的 处理队列中的数据 根据不同类型 分发给不同处理器 后面处理的过程 也是多线程的 3. 内存回收机制 定期懒惰 …...
蓝桥杯_拔河_java
佬们能不能对思路二提供点建议,一直过不了T_T。 题目 思路 首先感觉有个坑点,就是可以不用把所有学生都选上,但是一定要保证两个部分学生的编号是连续的。比如一共5个人,编号是{1,2,3,4…...
fastapi 实践(三)Swagger Docs
fastapi 实践(一)基础 fastapi 实践(二)异常捕获 fastapi 实践(三)Swagger Docs fastapi Swagger 1. FastAPI 交互式 API 文档2. 故障解决2.1. FastAPI 访问 docs 显示空白/加载失败2.2. Swagger 报错&…...
每日一题力扣3248.矩阵中的蛇c++
3248. 矩阵中的蛇 - 力扣(LeetCode) 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 是一个自定义的锁实现,模拟了 Java ReentrantLock 的公平锁机制。公平锁的核心思想是“先来后到”,即线程按照请求锁的顺序依次获取锁,避免线程饥饿。代码使用了以下关键组件: state: 表示…...
Channel-wise Knowledge Distillation for Dense Prediction论文阅读和
paper:https://arxiv.org/pdf/2011.13256.pdf code:https://github.com/open-mmlab/mmrazor 这篇paper主要是商汤开源的mmrazor中提及在detection有效果,我之前记录的几篇sota文章虽然在各自的paper中在detection领域都有提及有增益&#…...
deepSpeed多机多卡训练服务器之间,和服务器内两个GPU是怎么通信
DeepSpeed 在多机多卡训练时,主要依赖 NCCL 和 PyTorch Distributed 进行通信。具体来说,分为服务器之间和服务器内两种情况: 1. 服务器之间的通信(跨节点通信) DeepSpeed 采用 NCCL(NVIDIA Collective Communications Library)作为主要的通信后端,结合 PyTorch Distr…...
Mysql-经典实战案例(10):如何用PT-Archiver完成大表的自动归档
真实痛点:电商订单表存储优化场景 现状分析 某电商平台订单表(order_info)每月新增500万条记录 主库:高频读写,SSD存储(空间告急)历史库:HDD存储,只读查询 优化目标 …...
centos 7 搭建FTP本地用户
在 CentOS 7 系统上基于本地用户搭建 FTP 服务,可按以下步骤操作: 1. 安装 vsftpd 服务 vsftpd 是一款常用的 FTP 服务器软件,可借助 yum 来安装: bash yum install -y vsftpd2. 启动并设置开机自启 vsftpd 服务 bash systemct…...
HarmonyOS Next~鸿蒙系统功耗优化体系解析:前台交互与后台任务的全场景节能设计
HarmonyOS Next~鸿蒙系统功耗优化体系解析:前台交互与后台任务的全场景节能设计 鸿蒙操作系统(HarmonyOS)凭借其分布式架构与全场景协同能力,在功耗优化领域实现了从用户交互到系统底层的多维度创新。本文从前台用户低…...
混元视频与万相2.1全面对比分析
混元视频与万相2.1全面对比分析(2025版) 一、模型背景与技术定位 混元视频(HunYuan Video) 由腾讯开源,定位为“影视级AI视频生成工具”。核心能力集中在图生视频领域。模型架构基于13B参数规模,强调导演级…...
正则表达式:文本处理的瑞士军刀
正则表达式:文本处理的瑞士军刀 正则表达式(Regular Expression,简称 Regex)是一种用于匹配、查找和操作文本的强大工具。它通过定义一种特殊的字符串模式,可以快速地在文本中搜索、替换或提取符合特定规则的内容。正…...
【负载均衡系列】HAProxy
HAProxy(High Availability Proxy)是一款高性能的 TCP/HTTP 负载均衡器,专注于提供高可用性、灵活性和可靠性。以下是关于HAProxy的详细解析,涵盖其工作原理、工作机制、工作模式等核心方面: 一、HAProxy 工作原理 HAProxy的核心职责是将客户端请求高效、可靠地分发到后…...
设计模式之责任链模式:原理、实现与应用
引言 责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它允许多个对象有机会处理请求,从而避免请求的发送者与接收者之间的耦合。责任链模式通过将多个处理对象连接成一条链,使得请求沿着链传递&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 顾名思义,noinline的意思就是不内联,这个关键字只能作用于内联高阶函数的某个函数类型的参数上,表明当前的函数参数不参与高阶函数的内联: inline fun fun1(doSomething1: () -> Unit, noinline doSomething2: () -&…...
区块链交易签名相关知识总结
基础概念 签名流程 安全相关问题 实际场景 代码示例 进阶问题 一、基础概念 1. 为什么区块链交易需要签名? 答案: 身份认证:证明交易由私钥持有者发起。 数据完整性:确保交易内容未被篡改。 抗抵赖性:签名者无…...
Spring Boot集成Redis并设置密码后报错: NOAUTH Authentication required
报错信息: io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required.Redis密码配置确认无误,但是只要使用Redis存储就报这个异常。很可能是因为配置的spring.redis.password没有被读取到。 基本依赖: implementat…...
如何记录Matlab程序运行过程中所占用的最大内存(续)
在上一篇博客中,我们讨论了如何记录Matlab程序运行过程中所占用的最大内存。 博客原文:如何记录Matlab程序运行过程中所占用的最大内存-CSDN博客 但经过测试发现,这与实际有非常大的差异。运行如下例子: clear;clc; profile on…...
分布式节点池:群联云防护抗DDoS的核心武器
一、节点池的核心作用与架构设计 1. 全球分布式节点布局 物理层防御: 根据产品文档,群联在全球部署“海量分布式节点”,每个节点具备独立清洗能力,攻击流量被分散至不同区域节点处理。优势:避免传统单节点防护的瓶颈&…...
