EnergySystemsModellingLab / EnergySystemsModellingLab/MUSE_OS

[BUG] Global commodities column name mapping conflict

オープン
#795 コメント 5 件 リアクション 0 件 担当者 2 名 @tsmbland が担当を希望しています GitHub で見る
bug
主要言語
Python
スター
29
フォーク
12
PR マージ指標
30日以内にマージされた PR はありません

説明

## Describe the bug

Older global_commodities input files will have headings Commodity, CommodityName etc.

The mapping from these old columns names to the new names is:

Commodity -> description
CommodityName - > commodity

There is a problem here: how does muse know whether a column called "commodity" is in the old parlance or the new parlance?

At present the mapping Commodity -> description does not seem to be listed in csv.py

If we added it, it would incorrectly map a *new style* column name, because the mapping is done after reducing to camel case.

One tempting fix would be to do the mapping before the case change. However, this would put us back into a situation of being case-sensitive, which we were trying to get away from...

Hopefully there is a better solution? (Or I have misunderstood the cause of the problem..?)

## To Reproduce

Run the function `standardize_dataframe()` from [csv.py](https://github.com/EnergySystemsModellingLab/MUSE_OS/blob/main/src/muse/readers/csv.py) on the input file [global_commodities.csv](https://github.com/EnergySystemsModellingLab/MUSE_UK_industries/blob/main/MUSEModel/global_input_files/global_commodities.csv)

## Expected behavior

`ValueError: Duplicate columns in Index(['commodity', 'commodity_type', 'commodity', 'emmission_factor'], dtype='object')'

## Context

Please, complete the following to better understand the system you are using to run MUSE.

- Operating system (eg. Windows 10): Mac OSX
- MUSE version (eg. 1.0.1): b779f2339abaddcc76e0b196192f8625ebb4486a
- Installation method (eg. pipx, pip, development mode): development mode
- Python version (you can get this running `python --version`): 3.9.18

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。