繁体   English   中英

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

[英]How to copy numpy 2d array in pandas 2d dataframe

我有一个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索引和列将numpy中的所有值复制到pandas数据帧。

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

您可以使用DataFrame构造函数,例如: pd.DataFrame(data=raster_arr, index=raster_arr_df.index, columns=raster_arr_df.columns)

data :numpy ndarray(结构化或同类),dict或DataFrame Dict可以包含Series,数组,常量或类似列表的对象

index :用于结果帧的索引或类似数组的索引。 如果没有索引信息部分输入数据且没有提供索引,则默认为np.arange(n)

columns :用于结果帧的索引或类似数组的列标签。 如果未提供列标签,则默认为np.arange(n)

样品:

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

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

其中:data是你的numpy数组,index是数据帧的行,列是列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM