Numpy:如何将np.array添加为pandas.DataFrame的一列

Numpy:如何将np.array添加为pandas.DataFrame的一列

在本文中,我们将介绍如何使用NumPy将一个ndarray对象作为Pandas DataFrame的一个新列添加到DataFrame中。Pandas和NumPy的交互非常流畅,两者之间有着很少的数据转换和类型兼容的问题。因此,我们可以轻松地使用NumPy的数组和Pandas DataFrame进行数据操作。

阅读更多:Numpy 教程

创建DataFrame对象

首先,我们需要创建一个Pandas DataFrame对象并填充一些随机数据。这可以通过调用DataFrame方法并传递字典对象完成。字典的键将成为DataFrame的列名,而值将成为DataFrame的列。接下来,我们将演示如何使用此方法创建一个Pandas DataFrame并将其打印出来。

import pandas as pd
import numpy as np

data = {'A': np.random.rand(5),
        'B': np.random.rand(5),
        'C': np.random.rand(5)}

df = pd.DataFrame(data)
print(df)

输出结果如下:

          A         B         C
0  0.599114  0.822046  0.238260
1  0.697766  0.902594  0.294113
2  0.963745  0.109939  0.065341
3  0.383258  0.038173  0.754521
4  0.719040  0.632273  0.691273

将np.array添加为DataFrame的一列

现在,我们将演示如何将NumPy ndarray对象添加为Pandas DataFrame的新列。此方法可以通过在DataFrame中创建一列并使其等于ndarray来实现。我们将提供示例代码,演示如何添加一个新的名为“D”的数组列,列数据为随机数。

data_d = np.random.rand(5)
df['D'] = data_d

print(df)

此时,DataFrame将新增一个列D,列数据为data_d。

输出结果如下:

          A         B         C         D
0  0.599114  0.822046  0.238260  0.808840
1  0.697766  0.902594  0.294113  0.131682
2  0.963745  0.109939  0.065341  0.236316
3  0.383258  0.038173  0.754521  0.128376
4  0.719040  0.632273  0.691273  0.394004

我们还可以使用np.random.normal()函数创建一个正态分布的数组ndarray,然后将其添加为DataFrame的新列。

示例代码如下:

data_e = np.random.normal(0,1,5)
df['E'] = data_e

print(df)

此时,DataFrame将新增一个列E,列数据为data_e。

输出结果如下:

          A         B         C         D         E
0  0.599114  0.822046  0.238260  0.808840 -0.360512
1  0.697766  0.902594  0.294113  0.131682 -1.959591
2  0.963745  0.109939  0.065341  0.236316  0.476632
3  0.383258  0.038173  0.754521  0.128376 -1.063404
4  0.719040  0.632273  0.691273  0.394004 -0.109156

使用np.c_和np.r_将ndarray添加为DataFrame的新列

NumPy中的np.c_和np.r_函数允许将两个ndarray对象组合成一个对象。这些函数可用于将ndarray作为Pandas DataFrame的新列添加到DataFrame中。

  • 使用np.r_在DataFrame的顶部添加ndarray

np.r_函数可用于将ndarray添加到DataFrame的顶部。它要求两个ndarray对象的行数相同,列数可以不同。示例代码如下,其中我们将一个新数组作为DataFrame的第一列。

data_f = np.random.randint(0, 10, size=(5, 1))
df = pd.concat([pd.DataFrame(data_f), df], axis=1)

print(df)

此时,DataFrame将新增一个列F,列数据为data_f。

输出结果如下:

   0         A         B         C         D         E
0  6  0.599114  0.822046  0.238260  0.808840 -0.360512
1  3  0.697766  0.902594  0.294113  0.131682 -1.959591
2  7  0.963745  0.109939  0.065341  0.236316  0.476632
3  4  0.383258  0.038173  0.754521  0.128376 -1.063404
4  8  0.719040  0.632273  0.691273  0.394004 -0.109156
  • 使用np.c_在DataFrame的末尾添加ndarray

np.c_函数可用于将ndarray添加到DataFrame的末尾。它要求两个ndarray对象的列数相同,行数可以不同。示例代码如下,其中我们将一个新数组作为DataFrame的最后一列。

data_g = np.random.randint(0, 10, size=(5, 1))
df = pd.concat([df, pd.DataFrame(data_g)], axis=1)

print(df)

此时,DataFrame将新增一个列G,列数据为data_g。

输出结果如下:

   0         A         B         C         D         E  0
0  6  0.599114  0.822046  0.238260  0.808840 -0.360512  6
1  3  0.697766  0.902594  0.294113  0.131682 -1.959591  4
2  7  0.963745  0.109939  0.065341  0.236316  0.476632  0
3  4  0.383258  0.038173  0.754521  0.128376 -1.063404  1
4  8  0.719040  0.632273  0.691273  0.394004 -0.109156  0

删除ndarray

如果需要删除添加的ndarray,可以使用DataFrame的drop()方法。示例代码如下,我们将删除列D。

df = df.drop(['D'], axis=1)

print(df)

输出结果如下:

   0         A         B         C         E  0
0  6  0.599114  0.822046  0.238260 -0.360512  6
1  3  0.697766  0.902594  0.294113 -1.959591  4
2  7  0.963745  0.109939  0.065341  0.476632  0
3  4  0.383258  0.038173  0.754521 -1.063404  1
4  8  0.719040  0.632273  0.691273 -0.109156  0

总结

在本文中,我们介绍了如何使用NumPy将ndarray对象添加为Pandas DataFrame的新列,并演示了几个添加新列的示例。我们还介绍了如何使用np.r_和np.c_函数将ndarray添加到DataFrame的顶部和底部。另外,如果需要删除添加的列,可以使用DataFrame的drop()方法。通过这些示例,读者可以更好地理解如何使用NumPy进行数据操作,并以不同的方式将ndarray添加到Pandas DataFrame中。这些基本操作将有助于您更好地使用Pandas和NumPy进行数据处理和数据分析。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程