繁体   English   中英

从numpy数组创建Pandas数据帧,并使用数组的第一列作为索引

[英]Create Pandas dataframe from numpy array and use first column of the array as index

我有一个numpy数组(a):

array([[ 1. ,  5.1,  3.5,  1.4,  0.2],
[ 1. ,  4.9,  3. ,  1.4,  0.2],
[ 2. ,  4.7,  3.2,  1.3,  0.2],
[ 2. ,  4.6,  3.1,  1.5,  0.2]])

我想在我的numpy数组的第一列创建一个prandas dataframe(pd),其中values = a,columns = A,B,C,D和index =,最后它应该如下所示:

       A    B    C    D
  1  5.1  3.5  1.4  0.2
  1  4.9  3.0  1.4  0.2
  2  4.7  3.2  1.3  0.2
  2  4.6  3.1  1.5  0.2

我在尝试这个:

    df = pd.DataFrame(a, index=a[:,0], columns=['A', 'B','C','D'])

我收到以下错误:

ValueError: Shape of passed values is (5, 4), indices imply (4, 4)

有帮助吗? 谢谢

您将完整数组作为data参数传递,如果只需要数组中的4列作为data ,则还需要对数组进行切片:

In [158]:
df = pd.DataFrame(a[:,1:], index=a[:,0], columns=['A', 'B','C','D'])
df

Out[158]:
     A    B    C    D
1  5.1  3.5  1.4  0.2
1  4.9  3.0  1.4  0.2
2  4.7  3.2  1.3  0.2
2  4.6  3.1  1.5  0.2

索引中也有重复值会使过滤/索引出现问题

所以这里a[:,1:]我会根据需要从第1列开始获取所有行但请参阅文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM