How to copy numpy 2d array in pandas 2d dataframe

20,389

Solution 1

pandas.DataFrame(<numpy array>, index=df.index, columns=df.columns, dtype=None, copy=False)

where: data is your numpy array, index is your rows for dataframe, columns is the columns.

Solution 2

You can use DataFrame constructor like: pd.DataFrame(data=raster_arr, index=raster_arr_df.index, columns=raster_arr_df.columns):

data : numpy ndarray (structured or homogeneous), dict, or DataFrame Dict can contain Series, arrays, constants, or list-like objects

index : Index or array-like Index to use for resulting frame. Will default to np.arange(n) if no indexing information part of input data and no index provided

columns : Index or array-like Column labels to use for resulting frame. Will default to np.arange(n) if no column labels are provided

Sample:

print raster_arr_df
     a    b    c    d
1  NaN  NaN  NaN  NaN
2  NaN  NaN  NaN  NaN
3  NaN  NaN  NaN  NaN

print raster_arr
[[1 1 3 0]
 [4 2 6 0]
 [4 3 9 5]]

print pd.DataFrame(data=raster_arr, index=raster_arr_df.index, columns=raster_arr_df.columns)
   a  b  c  d
1  1  1  3  0
2  4  2  6  0
3  4  3  9  5
Share:
20,389
Gurminder Bharani
Author by

Gurminder Bharani

Updated on February 27, 2020

Comments

  • Gurminder Bharani
    Gurminder Bharani about 4 years

    I have a pandas dataframe which has structure like below:

    print raster_arr_df
    
          60.25 60.50 60.75 61.00 61.25 61.50 61.75 62.00 62.25 62.50  ...  94.75  \
    3.25    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    3.50    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    3.75    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    4.00    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    4.25    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    4.50    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    4.75    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    5.00    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    5.25    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    5.50    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    5.75    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    6.00    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    6.25    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    6.50    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    6.75    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    7.00    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    7.25    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    7.50    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    7.75    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    8.00    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    8.25    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    8.50    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    8.75    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    9.00    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    9.25    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    9.50    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    9.75    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    10.00   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    10.25   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    10.50   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    ...     ...   ...   ...   ...   ...   ...   ...   ...   ...   ...  ...    ...   
    35.75   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    36.00   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    36.25   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    36.50   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    36.75   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    37.00   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    37.25   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    37.50   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    37.75   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    38.00   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    38.25   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    38.50   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    38.75   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    39.00   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    39.25   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    39.50   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    39.75   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    40.00   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    40.25   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    40.50   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    40.75   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    41.00   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    41.25   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    41.50   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    41.75   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    42.00   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    42.25   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    42.50   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    42.75   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    43.00   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...    NaN   
    
          95.00 95.25 95.50 95.75 96.00 96.25 96.50 96.75 97.00  
    3.25    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    3.50    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    3.75    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    4.00    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    4.25    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    4.50    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    4.75    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    5.00    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    5.25    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    5.50    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    5.75    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    6.00    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    6.25    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    6.50    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    6.75    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    7.00    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    7.25    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    7.50    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    7.75    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    8.00    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    8.25    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    8.50    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    8.75    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    9.00    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    9.25    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    9.50    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    9.75    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    10.00   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    10.25   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    10.50   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    ...     ...   ...   ...   ...   ...   ...   ...   ...   ...  
    35.75   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    36.00   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    36.25   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    36.50   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    36.75   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    37.00   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    37.25   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    37.50   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    37.75   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    38.00   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    38.25   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    38.50   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    38.75   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    39.00   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    39.25   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    39.50   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    39.75   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    40.00   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    40.25   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    40.50   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    40.75   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    41.00   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    41.25   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    41.50   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    41.75   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    42.00   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    42.25   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    42.50   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    42.75   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    43.00   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  
    
    [160 rows x 148 columns]
    

    And my numpy array looks like below:

    print raster_arr
    
    [[ 0.          0.          0.         ...,  0.64464766  0.78923023
       0.90317035]
     [ 0.          0.          0.         ...,  1.39210367  2.56416273
       1.28261185]
     [ 0.          0.          0.         ...,  0.63526356  0.66092908
       1.5844413 ]
     ..., 
     [ 2.04395676  1.64457083  1.70771551 ...,  8.11063385  2.57144356
       1.60219038]
     [ 2.46784496  2.20636702  1.82298481 ...,  2.11637998  2.1444006
       2.13336754]
     [ 3.26898718  3.19584775  2.69124269 ...,  2.74416089  2.27447248
       6.18890047]]
    
    Process finished with exit code 0
    

    I want to copy all the values in numpy to pandas dataframe with the define index and columns in dataframe.

    The shape of both the pandas dataframe and the numpy array is the same.