Python 使用列标题查看/透视
我有一个包含流域ID和土地覆盖类别的表格:Python 使用列标题查看/透视,python,pandas,numpy,array-broadcasting,Python,Pandas,Numpy,Array Broadcasting,我有一个包含流域ID和土地覆盖类别的表格: WatershedID LandCover 2 Corn 8 Corn 2 Soy 8 Soy 以及一个单独的查找表,其中包含每个流域/土地覆盖组合的面积: WatershedID Corn Soy 2 14 1 3 2 14 5 18
WatershedID LandCover
2 Corn
8 Corn
2 Soy
8 Soy
以及一个单独的查找表,其中包含每个流域/土地覆盖组合的面积:
WatershedID Corn Soy
2 14 1
3 2 14
5 18 8
7 21 2
8 6 31
我想做的是将一列附加到第一个表中,该表包含查找表中相应的行/列值,如下所示:
WatershedID LandCover Area
2 Corn 14
8 Corn 6
2 Soy 1
8 Soy 31
通过使用for循环进行迭代,我成功地做到了这一点:
areas = []
for watershed_id, land_cover in tableA.iterrows():
areas.append(tableB.loc[watershed_id][land_cover]
但考虑到我桌子的大小,这是缓慢的。有没有一种不涉及迭代的更快的方法?我一直在试验多索引和透视表,但到目前为止还没有任何效果。您可以使用:
如果有更多相同的列,则需要为联接指定列:
print (pd.merge(df1,df3, on=['WatershedID','LandCover']))
WatershedID LandCover Area
0 2 Corn 14
1 8 Corn 6
2 2 Soy 1
3 8 Soy 31
print (pd.merge(df1,df3, on=['WatershedID','LandCover']))
WatershedID LandCover Area
0 2 Corn 14
1 8 Corn 6
2 2 Soy 1
3 8 Soy 31