Numpy将np.array添加到pandas.DataFrame列中
在本文中,我们将介绍如何使用Numpy在pandas.DataFrame中添加一个np.array作为一列。
作为Python数据科学生态系统中的两个关键库,pandas和Numpy都提供了广泛的功能以简化数据操作。而将Numpy的np.array添加到pandas.DataFrame的列中是一项常见的任务,特别是在数据清洗和加工的过程中。我们将从以下几个方面介绍这个任务的解决方案。
阅读更多:Numpy 教程
生成数据
首先,我们需要生成一些示例数据以说明如何将np.array添加到pandas.DataFrame。以下是两个示例数据集,其中一个是pandas.DataFrame,另一个是Numpy的np.array。
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1,2,3], 'B': ['a','b','c']})
arr = np.array([4,5,6])
df
是一个由字典生成的pandas.DataFrame,其中有两个列:“A”和“B”。arr
是一个包含三个元素的一维np.array。接下来,我们将演示如何将arr
添加到df
中。
直接赋值
最简单的添加方法是直接将arr
赋值给df
的一个新列。这可以通过[]
操作符实现:
df['New Column'] = arr
现在,我们将arr
添加到df
中作为新列“New Column”。视图输出df
,将看到其中新增一个列。该列的值是arr
中的值。
使用concat函数
另一种添加方法是使用Numpy的concat函数。concat函数可以将pandas.DataFrame和np.array水平拼接起来。这种方法可以在不改变原始数据的前提下生成一个新的pandas.DataFrame。
new_df = pd.concat([df, pd.DataFrame(arr, columns=['New Column'])], axis=1)
我们首先创建一个由arr
生成的新的pandas.DataFrame,然后使用concat函数将它与原来的df
水平拼接起来。
使用numpy.column_stack函数
最后一种添加方法是使用Numpy的column_stack函数。column_stack函数可以把多个np.array按列堆叠在一起。这种方法也可以在不改变原始数据的前提下生成一个新的pandas.DataFrame。
new_df = pd.DataFrame(np.column_stack((df, arr)), columns=list(df.columns)+['New Column'])
我们使用column_stack函数将df
和arr
堆叠在一起。新生成的np.array包含原来的df
和arr
。然后,我们创建一个新的pandas.DataFrame,其中包含原始df
中的列以及一个新的列“New Column”,该列包含arr
中的值。
总结
本文中,我们介绍了如何使用Numpy将np.array添加到pandas.DataFrame中作为一个新列。我们展示了三种方法:直接赋值、使用concat函数和使用column_stack函数。这些方法都可以在不改变原始数据的前提下生成新的pandas.DataFrame。无论是在数据清洗还是数据加工的过程中,将Numpy的np.array添加到pandas.DataFrame的列中是一项非常有用的操作。