【python】numpy的array数组与pandas的DataFrame表格互相转换(图文代码超详细)
短信预约 -IT技能 免费直播动态提醒
目录
0.环境
windows + jupyter notebook测试代码 + python语言
1.array数组和DataFrame表格的简单介绍
首先我们要知道,array类型的数组是来自于numpy库,
而DataFrame类型的表格是来自于pandas库。
在python中,`numpy`的`array`数据类型和`pandas`的`DataFrame`数据类型都是用于存储和操作数据的数据结构,但它们在一些方面有所不同:
- `numpy`的`array`数据类型是一个多维数组,它由相同类型的元素组成,并且支持各种数学和科学计算,例如线性代数、傅里叶变换等。`numpy`的`array`数据类型可以是一维、二维或更高维度的,可以存储数字、字符串、布尔值等各种数据类型。
- `pandas`的`DataFrame`数据类型是一个二维表格,由行和列组成,每列可以是不同的数据类型,例如数字、字符串、布尔值等。`DataFrame`适用于数据分析和数据处理,例如数据清洗、数据转换、数据过滤、排序、分组和聚合等操作。除了二维表格之外,`pandas`还提供了一种名为`Series`的一维数据结构,类似于带标签的数组。
- 总之,`numpy`的`array`适用于数学和科学计算,而`pandas`的`DataFrame`适用于数据分析和数据处理。
2.转换方式详解(代码)
0)前提:【需注意】
需要导入numpy库和pandas库
代码:
import numpy as npimport pandas as pd
1)array转化为DataFrame
思路:
先用numpy的random方法随机生成一个三行三列的数组(arr),
然后用pandas的【pandas.DataFrame()】方法将arr转化为DataFrame表格并打印
代码如下:
### 一、numpy的array转化为pandas的DataFrame# 1.用numpy创建一个三行三列的随机数组arrarr = np.random.rand(3, 3)# 2.打印数组arr和数组的类型print("1.随机数组arr为:")print(arr)print("2.arr数组类型为:")print(type(arr))print("\n")# 3.将arr数组转化为pandas的DataFrame表格df = pd.DataFrame(arr)# 4.打印转化后的表格和类型print("3.转化后的表格df为:")print(df)print("4.df表格类型为:")print(type(df))print("\n")
结果:
2)DataFrame转化为array
思路:
将刚才转化成DataFrame格式的df变量通过numpy的【numpy.array()】方法转化为数组
代码:
### 二、pandas的DataFrame转化为numpy的array# 5.将df(pandas的DataFrame)转化为numpy的array格式,并打印arr2 = np.array(df)print("5.转化后的arr2数组为:")print(arr2)print("6.arr2数组类型为:")print(type(arr2))
结果:
3)完整代码
import numpy as npimport pandas as pd### 一、numpy的array转化为pandas的DataFrame# 1.用numpy创建一个三行三列的随机数组arrarr = np.random.rand(3, 3)# 2.打印数组arr和数组的类型print("1.随机数组arr为:")print(arr)print("2.arr数组类型为:")print(type(arr))print("\n")# 3.将arr数组转化为pandas的DataFrame表格df = pd.DataFrame(arr)# 4.打印转化后的表格和类型print("3.转化后的表格df为:")print(df)print("4.df表格类型为:")print(type(df))print("\n")### 二、pandas的DataFrame转化为numpy的array# 5.将df(pandas的DataFrame)转化为numpy的array格式,并打印arr2 = np.array(df)print("5.转化后的arr2数组为:")print(arr2)print("6.arr2数组类型为:")print(type(arr2))
--END--
来源地址:https://blog.csdn.net/qq_41539778/article/details/131469288
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341