将Pandastable转换为矩阵转网格
Converting Pandas table into matrix to grid
我有一个 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',您可以使用 df.pivot 到 'map' 它,就像:
df.pivot(index="longitude", columns="height", values="CO")
我有一个 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',您可以使用 df.pivot 到 'map' 它,就像:
df.pivot(index="longitude", columns="height", values="CO")