Read-only mirror of https://github.com/BLV-OSAV-USAV/cubeUtilities — Federal Food Safety and Veterinary Office FSVO, Switzerland. Issues & pull requests at the source.
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
GuySchnidrig 9a8889cb2a update toml
2025-09-17 10:33:13 +02:00
cubeUtilities test translator 2025-09-17 10:10:31 +02:00
.gitignore Initial commit 2025-08-19 09:26:04 +02:00
example.py update translator 2025-09-17 10:16:21 +02:00
pyproject.toml update toml 2025-09-17 10:33:13 +02:00
README.md update toml 2025-09-17 10:33:13 +02:00

cubeUtilities

A collection of useful functions for open goverment data and Cube handling.

Installation

pip install git+https://github.com/BLV-OSAV-USAV/cubeUtilities.git

Usage

import pandas as pd
from cubeUtilities.converter import convert_cube
from cubeUtilities.translator import translate_dataframe_columns

# Example data
df = pd.DataFrame({
    "Serotyp": ["A", "A", "B", "B"],
    "Kanton_ID": ["ZH", "ZH", "BE", "BE"],
    "Season": ["2021", "2022", "2021", "2022"],
    "Genus": ["Cattle", "Cattle", "Pigs", "Pigs"],
    "Value": [10, 15, 12.3, 20],
    "Volume": [100, 150, 200, 300],
    "Animals": [1000, 1000, 2000, 2000]
})

# Conver Cube
cube = convert_cube(
    df,
    dimensions=["Serotyp", "Kanton_ID", "Season", "Genus"],
    measure_cols=["Value","Volume", "Animals"],
    per_subgroup_measures={"Animals": ["Genus"]},
    all_labels={"Serotyp": "ALL", "Kanton_ID": "CHE", "Season": "ALL", "Genus": "All_Genus"},
    round_decimals=2
)

print("Results:")
print(cube.to_string())

print("\n\nKey examples to verify:")
print("Animals for Cattle (any specific combination):", cube[(cube['Genus'] == 'Cattle') & (cube['Serotyp'] != 'ALL')]['Animals'].iloc[0])
print("Animals for 'Serotyp ALL, Genus Cattle' (should be 1000):", cube[(cube['Genus'] == 'Cattle') & (cube['Serotyp'] == 'ALL') & (cube['Kanton_ID'] != 'CHE') & (cube['Season'] != 'ALL')]['Animals'].iloc[0])
print("Animals for 'All_Genus' (should be 3000 = 1000 + 2000):", cube[cube['Genus'] == 'All_Genus']['Animals'].iloc[0])



# Translate Cube
translations = translate_dataframe_columns(
    df=cube,
    service="googletrans",
    source_language="en", 
    target_languages=["de", "en", "fr", "it"]
)