将NumPy数组转换为具有标题的Pandas dataframe

将NumPy数组转换为具有标题的Pandas dataframe

无论是pandas还是NumPy,都是Python中有效使用的开源库。NumPy代表Numerical Python(数字化的Python)。这是科学计算的核心库。NumPy数组是一个强大的N维数组对象,可以表示为行和列的形式。

NumPy array
array([[1, 2], [3, 4]])

Pandas提供了在Python中进行高性能数据处理和分析的工具,可以让我们处理类似于电子表格、CSV和SQL的表格数据。它具有DataFrame和Series等数据结构,主要用于数据分析。

DataFrame是一种二维标签数据结构,用于以行和列的方式表示数据。每一列中的数据可能具有不同的数据类型。

DataFrame:
  Col1 Col2
0    a   i
1    b   j
2    c   k
3    d   l

在此示例中,我们将使用标题将NumPy数组转换为Pandas数据帧。

输入输出场景

让我们看看输入输出场景,以了解如何将NumPy数组转换为Pandas数据帧。

假设我们有一个包含一些值的二维NumPy数组,在输出中,我们将看到一个带有列名的数据帧。

Input numpy array:
[[1 2]
 [3 4]]

Output DataFrame:
   header1  header2
0        1        2
1        3        4

使用列名从Numpy数组创建Pandas DataFrame,可以使用pandas的DataFrame()方法,通过使用columns参数,在创建dataframe对象时可以指定列名。

使用DataFrame()方法

pandas.DataFrame()方法用于根据给定数据创建DataFrame对象。以下是语法 –

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

其中,

  • data − NumPy数组,Iterable,字典或DataFrame。
  • index − 使用此参数指定行标签。默认值是0到n-1。
  • columns − 使用此参数指定列标签/头。默认情况下,范围索引是0到n-1。
  • dtype − 默认值为None。
  • copy − 从输入复制数据,默认值为None。

示例

在此示例中,我们将使用具有标题的numpy数组创建pandas数据框。首先,我们将使用np.array()方法创建一个二维的numpy数组,然后我们将其转换为pandas DataFrame。 < / p >

import numpy as np
import pandas as pd

# Creating a 2 dimensional numpy array
numpy_array = np.array([[1, 2], [3, 4]])
print("Input numpy array:")
print(numpy_array)

# Convert NumPy array to DataFrame
df = pd.DataFrame(numpy_array, columns = ['header1', 'header2'])
print("Output DataFrame:")
print(df)

输出

Input numpy array:
[[1 2]
 [3 4]]

Output DataFrame:
   header1  header2
0        1        2
1        3        4

通过将名称列表分配给DataFrame()方法的columns参数,我们可以指定头部。

示例

在这里,我们将头部名称列表指定给DataFrame()方法的columns参数。

import numpy as np
import pandas as pd

# Creating a 2 dimensional numpy array
numpy_array = np.array(np.random.randn(10,3))
print("Input numpy array:")
print(numpy_array)

headers = ['Acol','Ccol','Bcol']

# Convert NumPy array to DataFrame
df = pd.DataFrame(numpy_array, columns = headers)
print("Output DataFrame:")
print(df)

输出

Input numpy array:
[[ 0.51863463 -1.04180497 -0.53410509]
 [-1.67632426 -1.05587564  1.26963293]
 [ 0.1904154   1.89355907 -0.7596976 ]
 [-1.20464873 -0.45258193 -0.17936747]
 [ 0.17513833  0.78481916 -1.52235579]
 [-1.38108854  0.28470621  0.52897571]
 [-0.62921794  0.95548506  0.03370699]
 [ 0.30533368 -0.09951884  0.38484346]
 [ 0.06951039  0.94497233  0.82353788]
 [ 0.82560537  2.10383935  0.52618909]]
Output DataFrame:
       Acol      Ccol      Bcol
0  0.518635 -1.041805 -0.534105
1 -1.676324 -1.055876  1.269633
2  0.190415  1.893559 -0.759698
3 -1.204649 -0.452582 -0.179367
4  0.175138  0.784819 -1.522356
5 -1.381089  0.284706  0.528976
6 -0.629218  0.955485  0.033707
7  0.305334 -0.099519  0.384843
8  0.069510  0.944972  0.823538
9  0.825605  2.103839  0.526189

最初使用随机数创建numpy数组,然后将其转换为带有列标签的数据框。

示例

在这个示例中,我们将通过指定切片numpy数组元素的字典来创建数据框。

# importing packages
import numpy as np
import pandas as pd

# Creating a 2 dimensional numpy array
numpy_array = np.array([[5.8, 2.8], [6.0, 2.2]])
print("Input numpy array:")
print(numpy_array)

# Convert NumPy array to DataFrame
df = pd.DataFrame({'Column1': numpy_array[:, 0], 'Column2': numpy_array[:, 1]})
print("Output DataFrame:")
print(df)

输出

Input numpy array:
[[5.8 2.8]
 [6.  2.2]]
Output DataFrame:
   Column1  Column2
0      5.8      2.8
1      6.0      2.2

我们已经成功地从numpy数组中创建了带有标头的pandas DataFrame。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

Pandas 精选笔记