geekdoc-python-zh/docs/askpython/pandas-dataframe-to-numpy-a...

5.6 KiB
Raw Permalink Blame History

将 Pandas 数据帧转换为 Numpy 数组[分步]

原文:https://www.askpython.com/python-modules/numpy/pandas-dataframe-to-numpy-array

读者你好!在本文中,我们将了解什么是数据帧,以及如何将 Pandas 数据帧转换为 Numpy 数组,反之亦然。让我们开始吧:

介绍

Python 中的数据框是一种二维表格数据结构,由定义数据框不同特征的行和列组成。

我们可以使用 Pandas 库创建一个数据框,或者导入一个已经构建好的数据框(。csv 文件)并处理它。你可以使用 pip 命令安装 Pandas。

pip install pandas

上面写的代码安装了 pandas我们都准备好使用 Pandas 库的不同功能了。同样,我们将安装 numpy 库:

pip install numpy

首先,我们将看到这个表格结构(pandas 数据帧)到 numpy 数组的转换。


1.将 Pandas 数据帧转换为 Numpy 数组

我们可以通过使用 dataframe.to_numpy() 方法来做到这一点。这将给定的 Pandas 数据帧转换成 Numpy 数组。

  • 让我们创建两个数据框,我们将在本教程中使用。
#importing pandas
import pandas as pd

#creating dataframes
student_data = {"Name": ['Alice', 'Sam', 'Kevin', 'Max', 'Tom'],
        "exam_no": [201, 202, 203, 204, 205],
        "Result": ['Pass', 'Pass', 'Fail', 'Pass', 'Fail']}

set_of_numbers = {"Numbers": ['134', '273', '325','69.21','965']}

print("This is our first dataset :")
student_dataframe = pd.DataFrame(student_data)
print("\n",student_dataframe)

print("\nThis is our second dataset :")
numbers_dataframe = pd.DataFrame(set_of_numbers)
print("\n",numbers_dataframe)

  • 我们创建了两个数据帧:学生数据数字集合。我们的数据框看起来像这样:

Dataframes

  • 现在,在将 Pandas 数据帧转换为 Numpy 数组之前,让我们来看看类型:
print(type(student_dataframe))

print(type(numbers_dataframe))

上面两条语句的输出是相同的。即,

<class 'pandas.core.frame.DataFrame'>

  • 要将这个 Pandas 数据帧转换成 Numpy 数组,运行下面给出的代码

将学生数据转换为

student_array = student_dataframe.to_numpy()
print(student_array)

输出:

[['Alice' 201 'Pass']
 ['Sam' 202 'Pass']
 ['Kevin' 203 'Fail']
 ['Max' 204 'Pass']
 ['Tom' 205 'Fail']]

对于第二数据帧(组数)

numbers_array = numbers_dataframe.to_numpy()
print(numbers_array)

输出:

[['134']
 ['273']
 ['325']
 ['69.21']
 ['965']]

  • 我们还可以检查两个数组的数据类型:
print(type(student_array))
print(type(numbers_array))

输出:

<class 'numpy.ndarray'>
<class 'numpy.ndarray'>

因此,我们可以清楚地看到,我们只用了几个步骤就将 Pandas 数据帧转换为 Numpy 数组。这是处理数据帧及其转换的最简单方法。

  • 此外,我们还可以更改数据框中列的数据类型。考虑到我们的第二个数据帧,它由一些整数值和一些浮点值组成,让我们尝试将它们都改为浮点型。
print(numbers_dataframe.to_numpy(dtype ='float64'))

输出:

[[134\.  ]
 [273\.  ]
 [325\.  ]
 [ 69.21]
 [965\.  ]]


2.将 Numpy 数组转换为 Pandas 数据帧

现在您已经理解了 Pandas 数据帧到 Numpy 数组的转换,我们可能需要将数据转换回 Numpy 数组。让我们看看如何做到这一点:

  • 首先,定义一个 numpy 数组。然后使用 pandas 执行转换。熊猫图书馆的 DataFrame()函数。
#importing pandas and numpy
import pandas as pd
import numpy as np

#defining numpy array 
arr1 = np.array([[1,6,4,5], [3,7,2,4], [9,5,3,7]])
print("Numpy array : ")
print(arr1)

我们的数组是这样的:

Numpy array : 
[[1 6 4 5]
 [3 7 2 4]
 [9 5 3 7]]

  • 现在,把它转换成熊猫数据帧:
#converting array to dataframe
df = pd.DataFrame(arr1)
print("\npandas dataframe :")
df

转换后的数据帧为:

Pandas Dataframe to Numpy Array

  • 检查数据帧的类型:
type(df)

输出:

pandas.core.frame.DataFrame

  • 我们还可以为数据帧的行和列指定自己的标题。可以使用关键字 index 给出行的标题,对于列,我们使用关键字 columns
#converting and providing headers
df = pd.DataFrame(arr1, index = ["1","2","3"], columns = ["A","B","C","D" ])
print("\npandas dataframe :")
df

这将使我们的数据框看起来像这样:

Pandas Dataframe to Numpy Array

结论

就这样,我们到了这篇文章的结尾。在这篇文章中,你明白了

  • 熊猫数据帧和数组的基本知识
  • 如何将 pandas 数据帧转换为 numpy 数组
  • 如何将 numpy 数组转换为 pandas 数据帧

我希望这篇文章对你有用。谢谢大家!🙂

参考文献—