把numpy数组转换成dataframe列?

2024-05-23 13:54:04 发布

您现在位置:Python中文网/ 问答频道 /正文

如何将numpy数组转换为dataframe列。假设我创建了一个空数据帧df,然后循环代码创建5个numpy数组。每次for循环的迭代,我都要将在迭代中创建的numpy数组转换为数据帧中的列。为了澄清,我不想在循环的每次迭代中都创建一个新的数据帧,我只想在现有的循环中添加一个列。下面的代码很粗略,语法上不正确,但说明了我的观点。

df = pd.dataframe()
for i in range(5):
   arr = create_numpy_arr(blah) # creates a numpy array
   df[i] = # convert arr to df column

Tags: 数据代码innumpydataframedfforcreate
3条回答

因为您想创建一个列而不是数组中的整个DataFrame,所以可以

import pandas as pd
import numpy as np

column_series = pd.Series(np.array([0, 1, 2, 3]))

要将该列分配给现有的DataFrame

df = df.assign(column_name=column_series)

上面将在df中添加一个名为column_name的列。

相反,如果没有任何DataFrame可将这些值赋给,则可以将dict传递给构造函数,以便从numpy数组创建命名列:

df = pd.DataFrame({ 'column_name': np.array([0, 1, 2, 3]) })

会有用的

import pandas as pd
import numpy as np

df = pd.DataFrame()

for i in range(5):
    arr = np.random.rand(10)
    df[i] = arr

也许更简单的方法是使用矢量化

arr = np.random.rand(10, 5)
df = pd.DataFrame(arr)

这是最简单的方法:

df['column_name']=pd.Series(arr)

相关问题 更多 >