我有一个由列表列表组成的Numpy数组,表示具有行标签和列名的二维数组,如下所示:
data = array([['','Col1','Col2'],['Row1',1,2],['Row2',3,4]])
我希望得到的DataFrame以Row1和Row2作为索引值,以Col1和Col2作为标头值
我可以按如下方式指定索引:
df = pd.DataFrame(data,index=data[:,0]),
然而,我不确定如何最好地分配列标题。
发布于 2018-07-12 22:28:28
下面是一个易于理解的解决方案
import numpy as np
import pandas as pd
# Creating a 2 dimensional numpy array
>>> data = np.array([[5.8, 2.8], [6.0, 2.2]])
>>> print(data)
>>> data
array([[5.8, 2.8],
[6. , 2.2]])
# Creating pandas dataframe from numpy array
>>> dataset = pd.DataFrame({'Column1': data[:, 0], 'Column2': data[:, 1]})
>>> print(dataset)
Column1 Column2
0 5.8 2.8
1 6.0 2.2
发布于 2016-02-07 03:15:09
我同意Joris的观点;看起来你应该用不同的方式来做这件事,就像使用numpy record arrays一样。在this great answer中修改“选项2”,你可以这样做:
import pandas
import numpy
dtype = [('Col1','int32'), ('Col2','float32'), ('Col3','float32')]
values = numpy.zeros(20, dtype=dtype)
index = ['Row'+str(i) for i in range(1, len(values)+1)]
df = pandas.DataFrame(values, index=index)
发布于 2018-10-07 20:31:18
只需使用pandas DataFrame的from_records
即可完成此操作
import numpy as np
import pandas as pd
# Creating a numpy array
x = np.arange(1,10,1).reshape(-1,1)
dataframe = pd.DataFrame.from_records(x)
https://stackoverflow.com/questions/20763012
复制相似问题