我应该使用什么索引将numpy数组转换为pandas数据帧?

时间:2016-07-17 08:30:29

标签: python arrays numpy pandas dataframe

我正在尝试将一个简单的numpy数组转换为pandas数据帧。

x是我的数组,nam是列名列表。

x = np.array([2,3,1,0])
nam = ['col1', 'col2', 'col3', 'col4']

我使用pd.DataFrame转换x

y = pd.DataFrame(x, columns=nam)

但是我有这样的错误信息:

  

ValueError:传递值的形状为(1,4),index表示暗示(4,4)

我尝试调整索引参数,但无法找到解决方案。

我希望我的数据框看起来像这样:

col1   col2   col3   col4
   2      3      1      0

2 个答案:

答案 0 :(得分:7)

[]的另一个简化解决方案:

x = np.array([2,3,1,0])
nam = ['col1', 'col2', 'col3', 'col4']

print (pd.DataFrame([x], columns=nam))
   col1  col2  col3  col4
0     2     3     1     0

答案 1 :(得分:4)

你应该重塑你的输入数组:

In [6]: pd.DataFrame(x.reshape(1,4), columns=nam)
Out[6]:
   col1  col2  col3  col4
0     2     3     1     0

或更灵活:

In [11]: pd.DataFrame(x.reshape(len(x) // len(nam), len(nam)), columns=nam)
Out[11]:
   col1  col2  col3  col4
0     2     3     1     0