从Numpy数组创建Pandas DataFrame:如何指定索引列和列标题?
从Numpy数组创建Pandas DataFrame:如何指定索引列和列标题?
我有一个Numpy数组,它由一个列表的列表组成,表示一个具有行标签和列名的二维数组如下所示:
data = array([['','Col1','Col2'],['Row1',1,2],['Row2',3,4]])
我希望结果DataFrame的索引值为Row1和Row2,列头为Col1和Col2
我可以指定索引如下:
df = pd.DataFrame(data,index=data[:,0]),
但我不确定如何最好地分配列标题。
admin 更改状态以发布 2023年5月23日
这是一个易于理解的解决方案
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
你需要在DataFrame
构造函数中指定 data
,index
和 columns
,例如:
>>> pd.DataFrame(data=data[1:,1:], # values ... index=data[1:,0], # 1st column as index ... columns=data[0,1:]) # 1st row as the column names
编辑:正如 @joris 的评论所述,您可能需要将上面的代码更改为 np.int_(data[1:,1:])
以获得正确的数据类型。