python - 如何在 pandas 二维数据框中复制 numpy 二维数组

标签 python arrays numpy pandas

我有一个 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

我想将 numpy 中的所有值复制到 pandas 数据框中,并在数据框中定义索引和列。

pandas dataframe 和 numpy array 的形状是一样的。

最佳答案

您可以使用 DataFrame构造函数如: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

关于python - 如何在 pandas 二维数据框中复制 numpy 二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35666766/

相关文章:

python - 使用 BeautifulSoup 和 Selenium 抓取网站多个网页的内容

python - 使用 ElementTree 从 XML 中提取数据时出现问题

javascript - 如何按对象属性对数组进行分组

java - 如何仅在java中使用lambda按升序和降序对整数数组进行排序

python - 尝试将字符串数组转换为具有混合给定数据类型的数组时出现 ValueError

python - "pip3 install numpy"在酿造的 Python 3.5 上失败

python - 为什么所有的都适用于常规列表而不是二维列表?

python - 如果数字能整除,则将商设为整数

c - 整数数组[30] = {0};这在 c 中是如何工作的?

python - 将多类数组投影为二进制矩阵