How to copy numpy 2d array in pandas 2d dataframe
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
Gurminder Bharani
Updated on February 27, 2020Comments
-
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.