identify.auxilliary
Flatten multiindexed results to each flow beeing a singular column. |
|
Identify columns present in all dataframes. |
|
Identify columns not present in all dataframes. |
|
Filter a set of dataframes to only include mutually inclusive columns. |
|
Drop all columns only filled with zeroes (0). |
Tessif module providing aux. resullt differences identification tools.
- tessif.identify.auxilliary.flatten_multiindex_flow_data(midx_df)[source]
Flatten multiindexed results to each flow beeing a singular column.
- Parameters:
midx_df¶ (pandas.DataFrame) –
Multiindexed dataframe to be flattened.
Design case, the top-level index represents the individual components, while the second-level index represent the respective outflow targets.
Meaning for an energy system like:
A -> B -> C | v D
The dataframe would look something like:
A B B C D 0 10 8 2 1 0 0 0 2 20 2 18
Usually returned by something like
tessif.analyze.ComparativeResultier.all_loads.- Returns:
Flattened, singular indexed column data frame.
- Return type:
Example
Picking up on the example flows from above:
>>> import pandas as pd >>> data = [ ... [10, 8, 2, ], ... [0, 0, 0, ], ... [20, 2, 18], ... ] >>> mindex_df = pd.DataFrame( ... data=data, ... columns=pd.MultiIndex.from_tuples( ... [("A", "B"), ("B", "C"), ("B", "D")]), ... index=pd.date_range('2019-01-01', periods=3, freq='H'), ... )
Original multiindexed dataframe:
>>> print(mindex_df) A B B C D 2019-01-01 00:00:00 10 8 2 2019-01-01 01:00:00 0 0 0 2019-01-01 02:00:00 20 2 18
Flattened dataframe:
>>> print(flatten_multiindex_flow_data(mindex_df)) A to B B to C B to D 2019-01-01 00:00:00 10 8 2 2019-01-01 01:00:00 0 0 0 2019-01-01 02:00:00 20 2 18
- tessif.identify.auxilliary.list_mutually_inclusive_columns(dataframes)[source]
Identify columns present in all dataframes.
- Parameters:
dataframes¶ (Container) – Container of singular column indexed dataframes of which the mutually inclusive columns are identified
- Returns:
List of column indices.
- Return type:
Example
>>> import pandas as pd >>> data = [ ... [10, 8, 2, ], ... [0, 0, 0, ], ... [20, 2, 18], ... ] >>> df1 = pd.DataFrame( ... data=data, ... columns=["A", "C", "D"], ... ) >>> df2 = pd.DataFrame( ... data=data, ... columns=["A", "D", "E"], ... )
>>> print(list_mutually_inclusive_columns([df1, df2])) ['A', 'D']
- tessif.identify.auxilliary.list_not_mutually_inclusive_columns(dataframes)[source]
Identify columns not present in all dataframes.
- Parameters:
dataframes¶ (Container) – Container of singular column indexed dataframes of which the not mutually inclusive columns are identified
- Returns:
List of column indices.
- Return type:
Example
>>> import pandas as pd >>> data = [ ... [10, 8, 2, ], ... [0, 0, 0, ], ... [20, 2, 18], ... ] >>> df1 = pd.DataFrame( ... data=data, ... columns=["A", "C", "D"], ... ) >>> df2 = pd.DataFrame( ... data=data, ... columns=["A", "D", "E"], ... )
>>> print(list_not_mutually_inclusive_columns([df1, df2])) ['C', 'E']
- tessif.identify.auxilliary.filter_mutually_inclusive_columns(dataframes)[source]
Filter a set of dataframes to only include mutually inclusive columns.
- Parameters:
dataframes¶ (Container) – Container of singular column indexed dataframes of which the mutually inclusive columns are identified and kept, while the others are dropped.
- Returns:
List of dataframes only containing mutually inclusive columns.
- Return type:
Example
>>> import pandas as pd >>> data = [ ... [10, 8, 2, ], ... [0, 0, 0, ], ... [20, 2, 18], ... ] >>> df1 = pd.DataFrame( ... data=data, ... columns=["A", "C", "D"], ... ) >>> df2 = pd.DataFrame( ... data=data, ... columns=["A", "D", "E"], ... ) >>> filtered_dfs = filter_mutually_inclusive_columns([df1, df2])
Filtered df1:
>>> print(filtered_dfs[0]) A D 0 10 2 1 0 0 2 20 18
Filtered df2:
>>> print(filtered_dfs[1]) A D 0 10 8 1 0 0 2 20 2
- tessif.identify.auxilliary.drop_all_zero_columns(dataframe)[source]
Drop all columns only filled with zeroes (0).
- Parameters:
dataframe¶ (pandas.DataFrame) – data frame of which the all zero columns are dropped.
- Returns:
data frame not containing all zero columns
- Return type:
Example
>>> import pandas as pd >>> data = [ ... [10, 8, 0, ], ... [0, 0, 0, ], ... [20, 2, 0], ... ] >>> df = pd.DataFrame( ... data=data, ... columns=["A", "C", "D"], ... )
>>> print(drop_all_zero_columns(df)) A C 0 10 8 1 0 0 2 20 2
- tessif.identify.auxilliary.drop_all_zero_rows(dataframe)[source]
Drop all rows only filled with zeroes (0).
- Parameters:
dataframe¶ (pandas.DataFrame) – data frame of which the all-zero rows are dropped.
- Returns:
data frame not containing all-zero rows
- Return type:
Example
>>> import pandas as pd >>> data = [ ... [10, 8, 0, ], ... [0, 0, 0, ], ... [20, 2, 0], ... ] >>> df = pd.DataFrame( ... data=data, ... columns=["A", "C", "D"], ... )
>>> print(drop_all_zero_rows(df)) A C D 0 10 8 0 2 20 2 0