PolicyEngineUKDataset.load() raises KeyError: 'person_weight' for directly-supplied UK datasets
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 78/100
Direzione di ricerca
Inizia in src/policyengine/tax_benefit_models/uk/datasets.py leggendo load() e create_datasets(), quindi riproduci il fallimento del percorso diretto al file con un file Enhanced FRS pubblicato. Segui la derivazione dei pesi esistente e verifica che funzionino sia il caricamento diretto sia il percorso del manifest, inclusi i file in cui le colonne derivate sono già presenti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Constructing PolicyEngineUKDataset(name=..., description=..., filepath=..., year=...) against any published UK microdata file raises KeyError: 'person_weight'.
Reproduction (with any policyengine-uk-data Enhanced FRS file):
import policyengine as pe
from policyengine.tax_benefit_models.uk.model import PolicyEngineUKDataset
ds = PolicyEngineUKDataset(name="x", description="x", filepath=PATH, year=2024)
# -> KeyError: 'person_weight'
Cause: load() in src/policyengine/tax_benefit_models/uk/datasets.py assumes person_weight and benunit_weight are already columns. Published UK microdata carries only household_weight at the household level (verified absent in enhanced_frs_2024_25.h5, enhanced_frs_2023_24.h5 and populace_uk_2023.h5); person and benunit weights are derived. create_datasets in the same file already derives them and saves the rewritten file, so the manifest path works while the direct-filepath path does not.
Fix: factor the derivation into a shared helper and call it from load() too, deriving only when the columns are absent.
- Lingua principale
- Python
- Stelle
- 7
- Fork
- 9
- Merge medio
- 15h 51m
- PR unite (30g)
- 9
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di PolicyEngine/policyengine.py
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
PolicyEngine/policyengine.py#473 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
PolicyEngine/policyengine.py#436 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
PolicyEngine/policyengine.py#408 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
PolicyEngine/policyengine.py#523 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
PolicyEngine/policyengine.py#518 ·
Tutte le issue di PolicyEngine/policyengine.py
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100