如何以另一种方式在numpy中创建2D数组?

时间:2018-08-15 01:49:57

标签: python pandas numpy

我用numpy和pandas创建了一个2D数组,如下所示:

import numpy as np
import pandas as pd 

data = np.array([['','A','B','C'],
            ['0','1','2','3'],
            ['1','4','5','6'],
            ['2','7','8','9']])

print(pd.DataFrame(data=data[1:,1:],
              index=data[1:,0],
              columns=data[0,1:]))

我的问题是,还有其他更简单的方法可以在numpy中创建2D数组并使用熊猫将其放入数据框吗?

3 个答案:

答案 0 :(得分:3)

In [131]: data = np.arange(1,10).reshape(3,3)
In [132]: data
Out[132]: 
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
In [133]: df = pd.DataFrame(data=data, columns=['A','B','C'])
In [134]: df
Out[134]: 
   A  B  C
0  1  2  3
1  4  5  6
2  7  8  9
In [135]: df.dtypes
Out[135]: 
A    int64
B    int64
C    int64
dtype: object

答案 1 :(得分:2)

我认为您不需要分配index,因为它是从0len(df)的,而且将numpy array与mix数据类型一起使用也会引起问题,因为您输出的数据类型为object不是int

pd.DataFrame({'A':[1,4,7],'B':[2,5,8],'C':[3,6,9]})
Out[1104]: 
   A  B  C
0  1  2  3
1  4  5  6
2  7  8  9

答案 2 :(得分:1)

或直接列表:

>>> import pandas as pd
>>> pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],columns=list('ABC'))
   A  B  C
0  1  2  3
1  4  5  6
2  7  8  9
>>>