Python框架Pandas:DataFrame的应用

news2024/11/24 14:13:01

一、DataFrame

DataFrame是什么?
在这里插入图片描述

1.1 DataFrame的创建

1.1.1 方式一:使用字典加列表创建df,使用默认自增索引

import pandas as pd
# 使用字典加列表创建df,使用默认自增索引
df1_data = {
    '日期':['2021-08-21','2021-08-22','2021-08-23'],
    '温度':[25,26,30],
    '湿度':[81,90,79]
}
df1 = pd.DataFrame(data=df1_data)
df1

运行结果:
在这里插入图片描述

1.1.2 方式二、使用列表加元组创建df,并自定义索引

import pandas as pd
# 使用列表加元组创建df,并自定义索引
# 使用列表加元组创建df,并自定义索引
df2_data = [
    ('2024-09-10',23,90),
    ('2024-09-11',24,80),
    ('2024-09-12',25,85),
]
df2 = pd.DataFrame(
    data = df2_data,
    columns = ['日期','温度','湿度'],
    index = ['row_1','row_2','row_3']
)
df2

在这里插入图片描述

1.1.3 方式三:使用numpy创建df

# 生成10名同学,5门功课的数据
score = np.random.randint(40, 100, (10, 5))
# 使用Pandas中的数据结构
score_df = pd.DataFrame(score)

# 增加行列索引

# 构造行索引序列
subjects = ["语文", "数学", "英语", "政治", "体育"]

# 构造列索引序列
stu = ['同学' + str(i) for i in range(score_df.shape[0])]

# 添加行索引
data = pd.DataFrame(score, columns=subjects, index=stu)

运行结果:
在这里插入图片描述

1.4 DataFrame索引的设置

原始数据:
在这里插入图片描述

1.4.1 修改行列索引值

# 1.修改行列索引值
stu = ['学生_' + str(i) for i in range(score_df.shape[0])]
# 必须整体全部修改
data.index = stu
data

在这里插入图片描述

# 注意:错误的修改方式
data.index[3] = '学生_3'

1.4.2 重设索引

# 重置索引,drop=False
data.reset_index()

drop:默认为False,不删除原来索引,如果为True,删除原来的索引值
在这里插入图片描述

data.reset_index(drop=True)

在这里插入图片描述

1.4.3 以某列值设置为新的索引

set_index(keys, drop=True)
keys : 列索引名成或者列索引名称的列表
drop : boolean, default True.当做新的索引,删除原来的列

第一步:创建DataFrame

# 创建DataFrame
df = pd.DataFrame({
    'month':[1,4,7,10],
    'year':[2012,2014,2013,2014],
    'sale':[55,40,84,31]
})
df

在这里插入图片描述

第二步:以月份设置新的索引

df.set_index('month')

在这里插入图片描述

第三步:设置多个索引,以年和月份

df.set_index(['year','month'])

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2122928.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

应用连接错误,初始化mysql数据库恢复---惜分飞

有人在部署一个新网站的时候,写错了配置信息,直接导致原有数据库被清掉,并创建了新库和写入了数据(其实本质就是drop table恢复) 登录操作系统查看,发现数据库文件在根分区,创建了新库,写入了数据之外,还有几个G的binlog.全部恢复不太可能,最后客户决定需要恢复的2个核心表数…

如何将写好的Java代码打成jar包放在hadoops上运行

1、打包java文件 2、jar包上传,hadoop执行 我们将打好的jar包上传到Linux,因为hadoop是安装在Linux上的,然后用hadoop执行,执行前要确保已经在Linux上配置了hadoop的环境变量,不然就要到hadoop的目录下执行该命令 执…

记一次Hiveserver2连接异常的解决-腾讯云-emr

原文阅读:【巨人肩膀社区博客分享】记一次Hiveserver2连接异常的解决-腾讯云-emr 离线任务跑的好好的,忽然有一天失败了,查看海豚上的任务执行日志发现是hiveserver2连接超时了。 查看监控发现了几个问题一个是GC变得频繁,另一个…

Mac电脑剪切板在哪里找 苹果电脑剪切板打开教程【详解】

Windows 和 Mac 电脑在使用方式上存在一些差异,许多习惯了 Windows 系统的用户初次接触 Mac 时可能会对某些操作感到困惑。比如,很多人会问:Mac 上的剪贴板在哪里?如果你也有这样的疑问,不妨看看下面这篇关于如何在 Ma…

redis 基本数据类型—string类型

一、介绍 Redis 中的字符串,直接就是按照二进制数据的方式存储的,不会做任何的编码转换。 Redis对于 string 类型,限制了大小最大是512M 二、命令 SET 将 string 类型的 value 设置到 key 中。如果 key 之前存在,则覆盖&#…

系统架构设计师|关于系统架构-002

📫 作者简介:「六月暴雪飞梨花」,专注于研究Java,就职于科技型公司后端工程师 🏆 近期荣誉:华为云云享专家、阿里云专家博主、腾讯云优秀创作者、腾讯云TDP-KOL、ACDU成员、墨天轮技术专家博主 &#x1f52…

DBeaver 24.2 发布下载,新增功能概览

DBeaver Ultimate Edtion 24.2 Multilingual (macOS, Linux, Windows) - 通用数据库工具 One tool for all data sources 请访问原文链接:https://sysin.org/blog/dbeaver/,查看最新版。原创作品,转载请保留出处。 作者主页:sy…

【局域网投屏】sunshine和moonlight投屏/屏幕共享/扩展屏

主机是sunshine,客机是moonlight,一个太阳一个月光,两者真是太配啦! 下载sunshine sunshine是服务器端,去以下GitHub链接下载windows端的解压缩即用版 https://github.com/LizardByte/Sunshine/releases下载完毕解压…

Linux高级查找、过滤

find 在指定目录下查找文件和目录 基本语法:find [路径] [ 参数] [查找条件] 常用参数 -name 根据文件或目录的名称查找 find /path -name test.txt-iname 与name类似,但忽略大小写-size 根据文件大小查找 find /path -size 10M-user 根据文…

HS光流法原理与实现

1. 前言 人眼观察到物体运动时,物体会在视网膜平面上形成一系列连续变化的图像“流过”视网膜,好像一种光的“流”,所以被称为光流。 光流基于像素点定义,所有光流的集合称为光流场。通过对光流场分析,可以得到物体相对于观察者的运动信息。计算光流场的方法有很多,常见的…

Java中的类型转换 Day4

类型转换 类型转换总结来说就是:自动提升 手动下降 3.1 自动类型转换 自动类型转换需要满足的要求 两种类型相互兼容 例:int类型的取值范围包含了short类型的取值范围 目标类型大于源类型 目标类型的取值范围(等号左边)大于源…

debug对于开发工程师很重要

在日常开发中,总会遇到一些出人意料的bug,程序跑飞,上电就挂,程序没有按预期执行诸如此类的问题,没有好的调试方法,真的很难定位问题,更别说解决了。在这里分享我用过的一些调试方法&#xff0c…

欧几里得算法求最大公约数

两个不全为0的非负整数m,n的最大公约数记为gcd(m,n),代表能够整除(即余数为0)m和n的最大正整数。 计算gcd(m,n)的欧几里得算法: 第一步&#xf…

初识爬虫2

requests学习(未更新完): 小技巧,如果你用的也是pycharm,对于控制台输出页面因为数据很长一行,不方便进行查看, 可以让它自动换行: 1.requests文档阅读学习链接:快速上…

linux 脱机

先安装 screen apt-get install screen

【网络】网络通信的传输方式

目录 1.网络通信中的两种基本通信模式 1.1.怎么理解连接 1.2.面向有连接类型 1.3.面向无连接类型 2.实现这两种通信模式的具体交换技术 2.1.电路交换 2.2.分组交换 3.根据接收端数量分类 单播(Unicast) 广播(Broadcast) …

8、值、指针、引用作为参数或返回值

一、作为参数 1、值传递 #include <iostream> using namespace std;void swap(int a, int b) {cout << __FUNCTION__ << "交换前a:" << a << " b:" << b << endl;int tmp a;a b;b tmp;cout << __FUN…

98.游戏的启动与多开-分析与实现多开器

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;易道云信息技术研究院 上一个内容&#xff1a;97.游戏的启动与多开-共享内存多开检测 以 97.游戏的启动与多开-共享内存多开检测 它的…

若依框架开发

若依环境 介绍 ‌若依是一款快速开发平台(低代码)&#xff0c;用于快速构建企业级后台管理系统&#xff0c;它提供了许多常用的功能模块和组件&#xff0c;包括权限管理、代码生成、工作流、消息中心等 官方地址: https://www.ruoyi.vip/ ‌基于Spring Boot和Spring Cloud‌…

vscode配置C/C++环境(保姆级详细教程)

一. 引言 VSCode&#xff0c;全称为Visual Studio Code&#xff0c;是一款由微软开发的免费、开源的轻量级代码编辑器&#xff0c;它支持多种编程语言和平台&#xff0c;并提供丰富的扩展功能&#xff0c;让开发者能够更高效地编写代码。 大家能来搜用如何在VSCode配置C/C环境…