我用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数组并使用熊猫将其放入数据框吗?
答案 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
,因为它是从0
到len(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
>>>