【问题标题】:Converting Pandas table into matrix to grid将 Pandas 表转换为矩阵到网格
【发布时间】:2018-07-18 03:58:34
【问题描述】:

我有一个包含经度高度和平均一氧化碳数据点的 pandas 数据集。我想用颜色映射的 CO 值将这些绘制在高度与经度的网格上。 我的价值观是甲酸盐:

longitude height   CO
71        8000.0   50.958159
          9000.0   59.076651
          10000.0  46.716544
          11000.0  43.170888
72        8000.0   45.724138
          9000.0   45.505567
          10000.0  40.749734
          11000.0  42.305107
73        8000.0   53.045872
          9000.0   56.013487
          10000.0  42.418022
          11000.0  40.897789
74        7000.0   48.440000
          8000.0   59.165261
          9000.0   50.215405
          10000.0  42.504561
          11000.0  46.189446
75        7000.0   47.590909
          8000.0   38.887422
          9000.0   33.653982
          10000.0  47.762696
          11000.0  45.612828

我试图通过占据所有相关值的矩阵来做到这一点:

matrix = np.zeros(shape=(30, 12))

for i in range(70,100):
    for j in range(0,12):
        h = j*1000
        if grid_data.loc[(grid_data['longitude']) & (grid_data.loc(grid_data['height'] == h))
            x = i-70
            val = (grid_data.loc[(grid_data['longitude'] = i) & (grid_data['height'] = h))
            matrix[x,j] = val['CO']

但是,我意识到这显然是错误的,因为我在数据帧上执行 if 语句。我不知道如何从这里继续前进,因此我们将不胜感激。

【问题讨论】:

  • 请与df.to_dict()分享您的初始数据框。

标签: python pandas matrix grid geo


【解决方案1】:

假设您的数据框名为“df”,您可以使用 df.pivot 对其进行“映射”,就像:

df.pivot(index="longitude", columns="height", values="CO")

【讨论】:

  • 这实际上工作得很好,我从未听说过这个功能,但它非常适合。
猜你喜欢
  • 1970-01-01
  • 2012-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多