我正在尝试将一个简单的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
答案 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