I ont une table contenant les identifiants des bassins versants et les classes d'occupation du sol:Pandas recherche/pivot en utilisant têtes de colonne
WatershedID LandCover
2 Corn
8 Corn
2 Soy
8 Soy
et une table de consultation séparée qui contient la zone de chaque couvercle bassin versant/terre combinaison:
WatershedID Corn Soy
2 14 1
3 2 14
5 18 8
7 21 2
8 6 31
Ce que je voudrais faire est d'ajouter une colonne à la première table qui contient la valeur de la ligne/colonne correspondante dans la table de consultation, comme ceci:
WatershedID LandCover Area
2 Corn 14
8 Corn 6
2 Soy 1
8 Soy 31
J'ai réussi à le faire en itérer avec une boucle:
areas = []
for watershed_id, land_cover in tableA.iterrows():
areas.append(tableB.loc[watershed_id][land_cover]
mais étant donné la taille de mes tables, cela est lent. Existe-t-il un moyen plus rapide de faire cela qui n'implique pas l'itération? J'ai expérimenté avec MultiIndexing et les tableaux croisés dynamiques, mais rien n'a fonctionné jusqu'ici.
solution élégante, merci! – triphook