pandas 将numpy数组转换为dataframe列?

rvpgvaaj  于 2023-03-28  发布在  其他
关注(0)|答案(4)|浏览(124)

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

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

b1uwtaje1#

这是最简单的方法:

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

rbl8hiat2#

由于您希望从数组中创建一个列而不是整个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)

上面的代码会将一个名为column_name的列添加到df中。
相反,如果你没有任何DataFrame来分配这些值,你可以传递一个dict给构造函数,从你的numpy数组中创建一个命名列:

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

i1icjdpr3#

那会有用的

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)
uemypmqf

uemypmqf4#

如果你有一个二维数组:

pd.DataFrame(np.matrix.transpose(array))

相关问题