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.

Original source

Related problems