如何在pandas 2d datafram中复制numpy 2d数组

2024-04-27 14:08:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas数据框,其结构如下:

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]

我的numpy数组如下所示:

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

我想用dataframe中的define index和columns将numpy中的所有值复制到pandas数据框中。

pandas数据帧和numpy数组的形状是相同的。


Tags: columns数据numpypandasdfwith数组nan
2条回答

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

其中: 数据是你的numpy数组, 索引是数据帧的行, 列就是列。

可以使用^{}构造函数,例如: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

样品:

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

相关问题 更多 >