将numpy数组转换为数据框[重复]

Posted

技术标签:

【中文标题】将numpy数组转换为数据框[重复]【英文标题】:convert numpy array into dataframe [duplicate] 【发布时间】:2021-03-26 09:51:43 【问题描述】:

我有一个 numpy 数组,我想将其转换为数据框。

import numpy as np
import pandas as pd    
nparray = np.array([[1,2,3,4,5],[6,7,8,9,10]])

如何将其转换为数据如下所示的数据框:

col1 col2
1      6
2      7
3      8
4      9
5      10

【问题讨论】:

不,我之前检查过那个答案。但我无法理解如何转置数组。我有很多东西要学:) 【参考方案1】:

我最喜欢将 numpy 数组转换为 pandas DataFrames 的方法是传递字典中的列:

df = pd.DataFrame('col1':nparray[0], 'col2':nparray[1])

但是,如果你有很多列,你可以试试:

# Create list of column names with the format "colN" (from 1 to N)
col_names = ['col' + str(i) for i in np.arange(nparray.shape[0]) + 1]
# Declare pandas.DataFrame object
df = pd.DataFrame(data=nparray.T, columns=col_names)

在第二种解决方案中,您必须在将数组传递给data = ... 之前对其进行重组。也就是说,您必须重新排列 nparray 以便它具有行和列。 Numpy 有一个方法:你只需将.T 添加到你的数组中:nparray.T

【讨论】:

【参考方案2】:

使用以下代码将 numpy 数组转换为 DF。

df = pd.DataFrame(nparray.T, columns=['col1', 'col2'])

【讨论】:

【参考方案3】:
pd.DataFrame(nparray.T, columns=['col1', 'col2'])

就是这样

【讨论】:

【参考方案4】:

你可以转置你的 np 数组

创建数组

>>> import numpy as np
>>> import pandas as pd
>>> nparray = np.array([[1,2,3,4,5],[6,7,8,9,10]])

>>> nparray
array([[ 1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10]])

创建 pandas DataFrame 并转置

>>> df = pd.DataFrame(data=nparray, index=["col1", "col2"]).transpose()

>>> df
   col1  col2
0     1     6
1     2     7
2     3     8
3     4     9
4     5    10

及时 - 不用转置你会得到:

>>> df = pd.DataFrame(data=nparray, index=["col1", "col2"])

>>> df
      0  1  2  3   4
col1  1  2  3  4   5
col2  6  7  8  9  10

【讨论】:

以上是关于将numpy数组转换为数据框[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将数据框转换为 Numpy 数组 [重复]

将两个numpy数组转换为数据框

将数据框转换为 numpy 数组? [复制]

有没有办法将 numpy 数组转换为数据框,然后再转换回 numpy 数组并仍保持原始形状?

按标签分隔数据框(将数据框转换为 numpy 数组)

如何将包装为字符串的向量转换为熊猫数据框中的numpy数组?