Pandas DataFrame学习

1.DataFrame定义

     DataFrame 是 Pandas 中的另一个核心数据结构,用于表示二维表格型数据。DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。DataFrame提供各种功能进行数据访问、筛选、分割、合并、重塑、聚合以及转换等操作。

2.DataFrame特点

(1)二维结构: DataFrame 是一个二维表格,可以被看作是一个 Excel 电子表格或 SQL 表,具有行和列。可以将其视为多个 Series 对象组成的字典。

(2)列的数据类型: 不同的列可以包含不同的数据类型,例如整数、浮点数、字符串或 Python 对象等。

(3)索引:DataFrame 可以拥有行索引和列索引,类似于 Excel 中的行号和列标。

(4)大小可变:可以添加和删除列,类似于 Python 中的字典。

(5)自动对齐:进行算术运算或数据对齐操作时,DataFrame 会自动对齐索引。

(6)处理缺失数据:DataFrame 可以包含缺失数据,Pandas 使用 NaN(Not a Number)来表示。

(7)数据操作:支持数据切片、索引、子集分割等操作。

(8)时间序列支持:DataFrame 对时间序列数据有特别的支持,可以轻松地进行时间数据的切片、索引和操作。

(9)丰富的数据访问功能:通过 .loc、.iloc 和 .query() 方法可以灵活地访问和筛选数据。

(10)灵活的数据处理功能:包括数据合并、重塑、透视、分组和聚合等。

(11)数据可视化:DataFrame 本身不是可视化工具,但它可以与 Matplotlib 或 Seaborn 等可视化库结合使用,进行数据可视化。

(12)高效的数据输入输出:可以方便地读取和写入数据,支持多种格式,如 CSV、Excel、SQL 数据库和 HDF5 格式。

(13)描述性统计:提供了一系列方法来计算描述性统计数据,如 .describe()、.mean()、.sum() 等。

(14)灵活的数据对齐和集成:可以轻松地与其他 DataFrame 或 Series 对象进行合并、连接或更新操作。

(15)转换功能:对数据集中的值进行转换,例如使用 .apply() 方法应用自定义函数。

(16)滚动窗口和时间序列分析:支持对数据集滚动窗口统计和时间序列分析。

3.DataFrame 构造方法

pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)

(1)data:DataFrame 的数据部分,可以是字典、二维数组、Series、DataFrame 或其他可转换为 DataFrame 的对象。如果不提供此参数,则创建一个空的 DataFrame。

(2)index:DataFrame 的行索引,用于标识每行数据。可以是列表、数组、索引对象等。如果不提供此参数,则创建一个默认的整数索引。

(3)columns:DataFrame 的列索引,用于标识每列数据。可以是列表、数组、索引对象等。如果不提供此参数,则创建一个默认的整数索引。

(4)dtype:指定 DataFrame 的数据类型。可以是 NumPy 的数据类型,例如 np.int64、np.float64 等。如果不提供此参数,则根据数据自动推断数据类型。

(5)copy:是否复制数据。默认False,表示不复制数据。如果设置为 True,则复制输入的数据。

4.使用列表创建

import pandas as pddata = [['Kalka', 10], ['KK', 12], ['Kali', 13]]# 创建DataFrame
df = pd.DataFrame(data, columns=['Site', 'Age'])# 使用astype方法设置每列的数据类型
df['Site'] = df['Site'].astype(str)
df['Age'] = df['Age'].astype(float)print(df)

5.使用字典创建

import pandas as pddata = {'Site':['Kalika', 'KK', 'Kali'], 'Age':[10, 12, 13]}df = pd.DataFrame(data)print (df)

6.使用 ndarrays 创建

import numpy as np
import pandas as pd# 创建一个包含网站和年龄的二维ndarray
ndarray_data = np.array([['Kalika', 10],['KK', 12],['Kali', 13]
])# 使用DataFrame构造函数创建数据帧
df = pd.DataFrame(ndarray_data, columns=['Site', 'Age'])# 打印数据帧
print(df)

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

7.使用字典(key/value)创建

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

     没有对应的部分数据为 NaN。Pandas 可以使用 loc 属性返回指定行的数据,如果没有设置索引,第一行索引为 0,第二行索引为 1。

8.通过 .loc[] 索引访问打印数据

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

9.通过 .loc[] 索引返回多行数据

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

10.指定索引值

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

11.使用 loc 属性返回索引对应

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

12.注意事项

    DataFrame 是一种灵活的数据结构,可以容纳不同数据类型的列。列名和行索引可以是字符串、整数等。DataFrame 可以通过多种方式进行数据选择、过滤、修改和分析。通过对 DataFrame 的操作,可以进行数据清洗、转换、分析和可视化等工作。

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

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

相关文章

如何在创建完fb公共主页后添加管理员防止封号?

在创建Facebook公共主页后,及时添加备用管理员是非常重要的。这可以帮助防止由于个人账号被封或其他限制因素导致无法继续管理公共主页的情况。以下是关于如何添加管理员及接受邀请的详细步骤。 Facebook公共主页的角色介绍 在Facebook公共主页上,有五种…

无人机避障——使用三维PCD点云生成的2D栅格地图PGM做路径规划

着重介绍通过对三维 PCD 点云进行处理生成 2D 栅格地图 PGM,而后将该 PGM 地图充分运用到无人系统路径规划之中,使得无人机能够依据此规划合理避开飞行路线上可能出现的障碍物。(解决如何使用PGM的问题) Hybrid A*算法 参考博客…

YOLOv10改进策略【注意力机制篇】| WACV-2024 D-LKA 可变形的大核注意 针对大尺度、不规则的目标图像

一、本文介绍 本文记录的是利用D-LKA模块优化YOLOv10的目标检测网络模型。D-LKA 结合了大卷积核的广阔感受野和可变形卷积的灵活性,有效地处理复杂的图像信息。本文将其应用到v11中,并进行二次创新,使网络能够综合多种维度信息,更…

人工智能中的机器学习和模型评价

文章目录 1.监督学习1.1线性回归1.2KNN算法1.3支持向量机 2.无监督学习2.1K-means聚类2.2FCA主成分分析 机器学习是人工智能的一个分支,它使计算机系统能够从数据中学习并做出决策,而无需进行明确的编程。它涉及到开发算法和技术,使计算机能够…

HomeAssistant自定义组件学习-【二】

#要说的话# 前面把中盛科技的控制器组件写完了。稍稍熟悉了一些HA,现在准备写窗帘控制组件,构想的东西会比较多,估计有些难度,过程会比较长,边写边记录吧! #设备和场景环境# 使用的是Novo的电机&#xf…

Docker Swarm简介

注意事项 Swarm 模式是用于管理 Docker 守护进程集群的一项高级特性。如果你打算将 Swarm 用作生产运行时环境,那就使用 Swarm 模式。如果你不打算使用 Swarm 进行部署,可改用 Docker Compose。如果正在为 Kubernetes 部署进行开发,可以考虑使…

JVM 运行时数据区

JVM整体架构 可以分为三层: 1 JVM外部,从源文件到Class文件,再装载到JVM 2 JVM运行时数据区,相当于就是避风港、运行的大后方。给执行程序提供后勤。 3 执行引擎层。和运行时数据区交互,完成执行任务。 运行时数据…

新加坡托管服务器VS香港托管服务器:AI时代的选择策略

在人工智能迅速发展的今天,服务器作为数据存储与计算的核心基础设施,其性能、稳定性和地理位置对于用户体验和业务效率至关重要。对于中国用户而言,在选择服务器时,新加坡服务器和香港服务器无疑是两个极具吸引力的选项。两者同属…

DAYWEB69 攻防-Java 安全JWT 攻防Swagger 自动化算法签名密匙Druid 泄漏

知识点 1、Java安全-Druid监控-未授权访问&信息泄漏 2、Java安全-Swagger接口-文档导入&联动批量测试 2、Java安全-JWT令牌攻防-空算法&未签名&密匙提取 Java安全-Druid监控-未授权访问&信息泄漏 Druid是阿里巴巴数据库事业部出品,为监控而…

vscode使用技巧

vscode如果要用来写不同的语言,可以通过创建的工作区,然后创建不同的快捷方式以便打开它 注:C/C 退回到1.8.4,为了生成可以配置的文件 1.创建工作区 将工作区另存为 -> 选择你要写的文件夹的根目录 -> Save 2.归纳可执行…

Android 托管 Github Action 发布 Github Packages ,实现 Mvn 免费自动化托管

自从多年前 JCenter 关闭服务之后,GSY 项目版本就一直发布在 Jitpack 上,如今每个月也都有大概 10w 左右下载,但是近年来时不时就会出现历史版本丢失的问题,而且有时候还不是某个具体版本丢失,而是版本里的某几个依赖突…

记录一次企业外部通过ssh 连接数据库的事DBeaver

情况大概是这样,公司算法供应商开通了连接某个服务器A的权限,但是数据库x是在另一台服务器B上。 直接通过外部连接数据库是不行的,需要借用服务器A来进行访问x 使用软件:DBeaver, 数据库x类型:oracle 需要的信息&am…

Java爬虫的京东“寻宝记”:揭秘商品类目信息

开篇:Java特工的神秘任务 在这个数据驱动的时代,我们就像一群特工,穿梭在数字的海洋中,寻找着隐藏的宝藏——商品类目信息。今天,我们将带领你一起,用Java这把精密的瑞士军刀,深入京东的神秘领…

Linux——— 信号

文章目录 前言:引入信号生活中的例子信号概念见一见Linux中的信号 浅度理解信号信号处理(浅谈):如何自定义捕捉 信号保存(浅谈) 信号产生系统调用产生异常产生:浅谈除0异常浅谈解引用野指针异常Core &&…

Java面试经典 150 题.P169. 多数元素(005)

本题来自:力扣-面试经典 150 题 面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台https://leetcode.cn/studyplan/top-interview-150/ 题解: class Solution {public int majorityElement(int[] nums) …

antdesignvue + AWS-S3实现Minio大文件分片上传

一、后端&#xff1a; 1.引入pom <dependency><groupId>com.amazonaws</groupId><artifactId>aws-java-sdk-s3</artifactId><version>1.12.263</version></dependency> 2.配置application.yml jeecg:minio:minioUrl: http…

维修日常-卷帘门电子遥控钥匙接触不良的维修日志

前段时间&#xff0c;单位领导扔来一个卷帘门遥控钥匙给我&#xff0c;说是接触不良&#xff0c;让我看看什么情况&#xff1f;如下图所示&#xff1a; 测试后发现按住这个钥匙按键时&#xff0c;红灯不能一直亮&#xff0c;所以只能打开看看&#xff0c;如下图&#xff1a; 可…

1999-2023年上市公司持续绿色创新数据

1999-2023年上市公司持续绿色创新数据 1、时间&#xff1a;1999-2023年 2、来源&#xff1a;国家知识产权局 3、指标&#xff1a;年份、股票代码、股票简称、行业名称、行业代码、省份、城市、区县、首次上市年份、上市状态、绿色专利申请总量、绿色发明专利申请数量、绿色实…

Golang | Leetcode Golang题解之第526题优美的排列

题目&#xff1a; 题解&#xff1a; func countArrangement(n int) int {f : make([]int, 1<<n)f[0] 1for mask : 1; mask < 1<<n; mask {num : bits.OnesCount(uint(mask))for i : 0; i < n; i {if mask>>i&1 > 0 && (num%(i1) 0 |…