python - 将 Numpy 数组按列转换为 Pandas DataFrame(作为单行)

标签 python arrays pandas numpy

我有一个像这样的 numpy 数组:

a = np.array([35,2,160,56,120,80,1,1,0,0,1])

然后我尝试将该数组转换为具有逻辑“一列一值”的 pandas 数据框,如下所示:

columns=['age','gender','height',
     'weight','ap_hi','ap_lo',
     'cholesterol','gluc','smoke',
     'alco','active']

values = a

df = pd.DataFrame(a,columns=columns)

这种方法引发 ValueError:传递值的形状是 (1, 11),索引暗示 (11, 11)。我做错了什么以及如何以正确的方式执行它?

谢谢!

最佳答案

你需要numpy.reshape :

columns=['age','gender','height',
     'weight','ap_hi','ap_lo',
     'cholesterol','gluc','smoke',
     'alco','active']

a = np.array([35,2,160,56,120,80,1,1,0,0,1])

df = pd.DataFrame(a.reshape(-1, len(a)),columns=columns)
print (df)
   age  gender  height  weight  ap_hi  ap_lo  cholesterol  gluc  smoke  alco  \
0   35       2     160      56    120     80            1     1      0     0   

   active  
0       1  

如果 reshape 操作读起来不清楚,向一维数组添加维度的更明确的方法是使用 numpy.atleast_2d

pd.DataFrame(np.atleast_2d(a), columns=columns)

或者更简单地添加 [](但如果列数太多,速度会更慢):

df = pd.DataFrame([a],columns=columns)
print (df)
   age  gender  height  weight  ap_hi  ap_lo  cholesterol  gluc  smoke  alco  \
0   35       2     160      56    120     80            1     1      0     0   

   active  
0       1  

感谢 Divakar suggestion :

df = pd.DataFrame(a[None],columns=columns)
print (df)
   age  gender  height  weight  ap_hi  ap_lo  cholesterol  gluc  smoke  alco  \
0   35       2     160      56    120     80            1     1      0     0   

   active  
0       1  

还有另一个解决方案,谢谢piRSquared :

pd.DataFrame([a], [0], columns) 

关于python - 将 Numpy 数组按列转换为 Pandas DataFrame(作为单行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45327069/

相关文章:

python - 将值添加到二维数组的快速方法

python - 在 Pandas 数据框中按时间范围对行进行分组

python - 在 Excel 中用 "0"替换 Nan 值和空白单元格。我的代码还将文本替换为 "0"

python-3.x - 如何根据现有列将新列添加到 pandas 系列中

python - 如何聚合 Pandas 数据框中的累积列表?

python - 在 flask 框架中将应用程序上下文传递给 celery

python - 如何使用 wxPython 以正确的大小打开 GUI?

php - PHP 中的 SQL 查询,谓词位于数组中

javascript - PHP 中的 HTML 数组字段解析

arrays - 在 PostgreSQL 中使用类似 JOIN 的语句合并嵌套的 JSONB 字段数组?