Source code for miscset.tables

"""Methods to convert data to and from tables (DataFrames)."""


import pandas


[docs]def df_to_list(df): """Convert a pandas DataFrame values to a list of lists. Args: df (pandas.DataFrame): A DataFrame to convert to a dictionary. Returns: list: A list of lists """ return [df[column_name].values.tolist() for column_name in df.columns]
[docs]def df_to_dict(df): """Convert a pandas DataFrame to a dictionary of lists. Args: df (pandas.DataFrame): A DataFrame to convert to a dictionary. Returns: dict: A dictionary with the format `{column -> [values]}`. """ return df.to_dict(orient = "list")
[docs]def list_to_df(lol, colnames = None, transpose = True): """Convert a list of list to a pandas DataFrame. Args: lol (list of lists): 2-dimensional list array to parse to a DataFrame. Data is arranged row-wise, see argument `transpose`. colnames (list): Column names to set. If given `None`, create pseudo names with [col1, col2, ..., coli, ..., coln] notation. transpose (bool): Import data column-wise. Returns: pandas.DataFrame .. exec_code:: :caption: Example code: :caption_output: Result: import miscset print(miscset.tables.list_to_df([[1,2,3], ["a","b","c"]])) """ df = pandas.DataFrame(data = lol) if transpose: df = df.transpose() ncols = len(df.columns) if colnames is None: colnames = [f"col{i+1}" for i in range(ncols)] df.columns = colnames return df
[docs]def dict_to_df(d): """Convert a dictionary to a pandas DataFrame. Args: d (dict): A dictionary formatted `{column -> [values]}`. Returns: pandas.DataFrame """ return pandas.DataFrame(data = d)