Creating a Pandas DataFrame from a Numpy array: How do I specify the index column and column headers?
dataframe, list, numpy, pandas, python
Solution
Specify `data`, `index` and `columns` to the `DataFrame` constructor, as follows:
>>> 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
As @joris mentions, you may need to change above to `np.int_(data[1:,1:])` to have the correct data type.
Problem
I have a Numpy array consisting of a list of lists, representing a two-dimensional array with row labels and column names as shown below: ``` data = np.array([['','Col1','Col2'],['Row1',1,2],['Row2',3,4]]) ``` I'd like the resulting DataFrame to have `Row1` and `Row2` as index values, and `Col1`, `Col2` as header values. I can specify the index as follows: ``` df = pd.DataFrame(data, index=data[:,0]) ``` However, I am unsure how to best assign column headers.