5. Sub-package dataframes — pvlab 0.1.0.dev1 documentation

# 5. Sub-package dataframes

Provide tools to manage dataframes in the context of calibration.

It contains the following python modules:

## Module dfdicts

Perform type-conversion and pretty-print operations for dictionaries.

It contains the following functions:

pvlab.dataframes.dfdicts.dict_to_df(dictionary: dict, columns: list) → pandas.core.frame.DataFrame

  Re-arrange a dictionary to become a pandas dataframe.

  It performs a type conversion of a dictionary (e.g. a dictionary that represents some kind of valid time intervals), returning a `pandas` DataFrame.

  Example 1: correct functioning.

      >>> dates = {'START_1': (2021,5,5,8,1,0), 'END_1': (2021,5,6,22,52,0)}

      >>> columns = ['%Y', '%m', '%d', '%H', '%M', '%S']

      >>> dict_to_df(dates, columns)
                 %Y  %m  %d  %H  %M  %S
      START_1  2021   5   5   8   1   0
      END_1    2021   5   6  22  52   0

  Example 2: the columns list is too short.

      >>> columns = ['%Y', '%m', '%d', '%H', '%M']

      >>> dict_to_df(dates, columns)
      Traceback (most recent call last):
          ...
      ValueError: Length of columns list is equal to 5, but has to be equal to 6.

  Example 3: the columns list is too long.

      >>> columns = ['%Y', '%m', '%d', '%H', '%M', '%S', '%mS']

      >>> dict_to_df(dates, columns)
      Traceback (most recent call last):
          ...
      ValueError: Length of columns list is equal to 7, but has to be equal to 6.

pvlab.dataframes.dfdicts.print_dict(dictionary: dict, columns: list, title: str = '') → None

  Prettyprint a dictionary of dates, adding a title.

  Example: correct functioning.

      >>> dates = {'START_1': (2021,5,5,8,1,0), 'END_1': (2021,5,6,22,52,0)}

      >>> columns = ['%Y', '%m', '%d', '%H', '%M', '%S']

      >>> title = 'Valid time intervals'

      >>> print_dict(dates, columns, title)
      Valid time intervals
       --------------------
                  %Y  %m  %d  %H  %M  %S
      START_1  2021   5   5   8   1   0
      END_1    2021   5   6  22  52   0