Note
Click here to download the full example code
Basic usage
A simple example demonstrating how to use mass-composition.
Design notes: Once data is loaded chemical analyte names and H2O will conform to the internal standard.
import pandas as pd
from elphick.mass_composition import MassComposition
from elphick.mass_composition.datasets.sample_data import sample_data
Create a MassComposition object
We get some demo data in the form of a pandas DataFrame
df_data: pd.DataFrame = sample_data()
df_data
Construct a MassComposition object
obj_mc: MassComposition = MassComposition(df_data)
print(obj_mc)
unnamed
<xarray.Dataset> Size: 216B
Dimensions: (index: 3)
Coordinates:
* index (index) int64 24B 0 1 2
Data variables:
mass_wet (index) float64 24B 100.0 90.0 110.0
mass_dry (index) float64 24B 90.0 80.0 90.0
H2O (index) float64 24B 10.0 11.11 18.18
Fe (index) float64 24B 57.0 59.0 61.0
SiO2 (index) float64 24B 5.2 3.1 2.2
Al2O3 (index) float64 24B 3.0 1.7 0.9
LOI (index) float64 24B 5.0 4.0 3.0
group (index) object 24B 'grp_1' 'grp_1' 'grp_2'
Attributes:
mc_name: unnamed
mc_vars_mass: ['mass_wet', 'mass_dry']
mc_vars_chem: ['Fe', 'SiO2', 'Al2O3', 'LOI']
mc_vars_attrs: ['group']
mc_interval_edges: {}
Demonstrate the aggregate method
i.e. weight average of the dataset, a.k.a. head grade
obj_mc.aggregate()
obj_mc.aggregate(as_dataframe=False)
Aggregate by a group variable
obj_mc.aggregate(group_var='group')
Filter the object
Filter with a criteria, just like pandas
obj_mc.query(queries={'index': 'Fe>58'}).aggregate()
Total running time of the script: ( 0 minutes 0.151 seconds)