Pandas DataFrame的创建方法(Create DataFrame)

ops/2024/9/22 15:47:02/

pandas是一个第三方数据分析库,其集成了大量的数据模型和分析工具,可以方便的处理和分析各类数据。其中主要对象类型有Series,DataFrame和Index。本文介绍DataFrame对象的基本创建方法。

关于DataFrame的基础用法,可以查看下面的文章:
Python 利用pandas处理CSV文件(DataFrame的基础用法)

文章目录

  • 一、DataFrame的创建方法
    • 1.1 通过Python序列对象创建
    • 1.2 通过Python字典对象创建
    • 1.3 空值导致的类型转换
    • 1.4 通过其他函数创建

一、DataFrame的创建方法

DataFrame是包含索引的二维数据结构,数据结构和Excel或关系型数据库的表非常类似。重点是其在行、列上都是有标签的,其中纵向的标签叫做索引标签(定位每一行),横向的标签叫做列标签(定位每一列),标签也是Pandas中一种对象类型(Index对象)。
在这里插入图片描述

1.1 通过Python序列对象创建

Pandas中的的DataFrame函数可以将其他对象转换为DataFrame对象,传入列表或元组即可得到一个DataFrame对象(首次使用需要导入pandas):

python">import pandas as pd
df = pd.DataFrame([1,2,'a'])

在这里插入图片描述

这里看起来和Series很像,但注意DataFrame是包含列标签的,对比Series看一下区别:

python">s = pd.Series([1,2,'a']) 

在这里插入图片描述

创建一个二维DataFrame,默认索引标签和列标签都是从0开始方差为1的等差数列(0,1,2,3…):

python">df = pd.DataFrame([[1,2,3], [4,5,6]])

在这里插入图片描述

通过传入index和columns参数可以显式指定索引标签和列标签(为行和列命名,方便引用):

python">df = pd.DataFrame([[1,2,3], [4,5]], index=['a','b'], columns=['x','y','z'])

在这里插入图片描述

1.2 通过Python字典对象创建

通过Python字典创建DataFrame时,字典的键默认会变为列标签,索引标签为数字:

python">d = {'x':[1,2,3], 'y':[4,5,6]}
df = pd.DataFrame(d)

在这里插入图片描述

如果字典的值是Series,那么Series的标签会成为DataFrame的索引标签:

python">s1 = pd.Series([1,2,3], index=['a','b','c'])
s2 = pd.Series([4,5,6], index=['b','c','d'])
d = {'x':s1, 'y':s2}
df = pd.DataFrame(d)

在这里插入图片描述
可以看到DataFrame会包含s1和s2的所有标签,另一个Series中不存在的标签会使用NaN(Not a Number)填充。

我们可以把DataFrame看作由Series组成的字典,每一列都是一个Series,用字典的方式引用列标签就可以得到Series:

python">df['x']

在这里插入图片描述

1.3 空值导致的类型转换

这里有个小问题,我们创建的时候传入数字都是整型,为什么最终的DataFrame中变成了浮点型(float64)?答案是这里填入了NaN(即np.nan),这是NumPy中一个特殊的浮点类型,代表数字类型的空值,而Series是同构的,因此为了兼容NaN,需要将数据类型向高级的转换,所以整列的类型都变成了浮点型。

如果s1包含’d’索引,就不会出现这种转换,和上面的例子对比一下区别:

python">s1 = pd.Series([1,2,3,4], index=['a','b','c','d'])
s2 = pd.Series([4,5,6], index=['b','c','d'])
d = {'x':s1, 'y':s2}
df = pd.DataFrame(d)
df['x'].dypte
df['y'].dypte

在这里插入图片描述
x列由于不需要填充NaN,保留了整型(int64),而y列需要填入NaN,整列都被转换为浮点型(float64)。

1.4 通过其他函数创建

上面都是通过手搓的方式创建DataFrame,实际数据分析中我们较少使用这种方式,更常见的方式是从文件中读取数据转换为DataFrame对象。Pandas的read_csv, read_execl等函数可以从对应的文件格式中读取数据并返回DataFrame对象,在数据分析中更加常用,具体操作方法可以参考文首的链接。


http://www.ppmy.cn/ops/97651.html

相关文章

AIGC 与 ChatGPT 的区别与联系

前言 在人工智能技术飞速发展的今天,生成式人工智能内容(AIGC)和对话式 AI(如 ChatGPT)成为了备受瞩目的话题。虽然这两者在技术基础和应用领域上有很多重叠之处,但它们也各自有独特的特点和用途。本文将深…

使用Go env命令设置Go的环境

前言 在进行Go开发的时候,设置Go的环境变量信息是必须的。下面介绍windows和Linux,以及Go自身提供的命令进行设置的形式 Linux的设置 In Linux or macOS, you can execute the below commands.(在Linux或者macOS,你可以执行下面的命令) 复制…

SI4463直接模式发送接收

终于知道程序Debug卡死在startup_stm32fxxx_hd.s问题

BaseCTF2024 WP (主要为Rev)

Rev Rev视频解析:[Rev0:从零开始的逆向生活]BaseCTF2024 Week1 Rev 讲解_哔哩哔哩_bilibili [Week1] You are good at IDA [Week1] UPX mini 脱UPX标准壳,解base64 [Week1] Ez Xor 简单的反向异或,数据动调取一下 #base_xor e…

舜宇光学科技社招校招入职测评:商业推理测验真题汇总、答题要求、高分技巧

舜宇光学科技(集团)有限公司,成立于1984年,是全球领先的综合光学零件及产品制造商。2007年在香港联交所主板上市,股票代码2382.HK。公司专注于光学产品的设计、研发、生产及销售,产品广泛应用于手机、汽车、…

多重示例详细说明Eureka原理实践

Eureka原理(Eureka Principle)是指在长时间的思考和积累之后,通过偶然的瞬间获得灵感或发现解决问题的方法的一种认知现象。这个过程通常包括三个主要阶段:准备阶段、潜伏期以及突然的灵感爆发。下面详细说明Eureka原理的实践步骤…

类与对象(中(2))

开头 大家好啊,上一期内容我们介绍了类与对象中六大默认成员函数中的两种--->构造函数与析构函数,相信大家多少都形成了自己的独到见解。那么今天,我将继续就拷贝构造函数与运算符重载函数来展开讲解,话不多说,我们…

[数据集][目标检测]瞳孔虹膜检测数据集VOC+YOLO格式8768张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):8768 标注数量(xml文件个数):8768 标注数量(txt文件个数):8768 标注…