IMS Package Documentation
The IMS package is a python library for processing incoming data into a format that can be used for projects. IMS processing offers a variety of functions to manipulate and analyze data efficiently. Here are the functionalities provided by the package:

1. get_wd_levels(levels)
Description: Get the working directory with the option of moving up parents.
Usage: get_wd_levels(levels)
2. remove_rows(data_frame, num_rows_to_remove)
Description: Removes a specified number of rows from a pandas DataFrame.
Usage: remove_rows(data_frame, num_rows_to_remove)
3. aggregate_daily_to_wc(df, date_column, group_columns, sum_columns, wc, aggregation='sum', include_totals=False)
Description: Aggregates daily data into weekly data, grouping and summing specified columns, starting on a specified day of the week.
Usage: aggregate_daily_to_wc(df, date_column, group_columns, sum_columns, wc, aggregation='sum', include_totals=False)
4. convert_monthly_to_daily(df, date_column)
Description: Converts monthly data in a DataFrame to daily data by expanding and dividing the numeric values.
Usage: convert_monthly_to_daily(df, date_column)
5. plot_two(df1, col1, df2, col2, date_column, same_axis=True)
Description: Plots specified columns from two different DataFrames using a shared date column. Useful for comparing data.
Usage: plot_two(df1, col1, df2, col2, date_column, same_axis=True)
6. remove_nan_rows(df, col_to_remove_rows)
Description: Removes rows from a DataFrame where the specified column has NaN values.
Usage: remove_nan_rows(df, col_to_remove_rows)
7. filter_rows(df, col_to_filter, list_of_filters)
Description: Filters the DataFrame based on whether the values in a specified column are in a provided list.
Usage: filter_rows(df, col_to_filter, list_of_filters)
8. plot_one(df1, col1, date_column)
Description: Plots a specified column from a DataFrame.
Usage: plot_one(df1, col1, date_column)
9. week_of_year_mapping(df, week_col, start_day_str)
Description: Converts a week column in 'yyyy-Www' or 'yyyy-ww' format to week commencing date.
Usage: week_of_year_mapping(df, week_col, start_day_str)
10. exclude_rows(df, col_to_filter, list_of_filters)
Description: Removes rows from a DataFrame based on whether the values in a specified column are not in a provided list.
Usage: exclude_rows(df, col_to_filter, list_of_filters)
11. rename_cols(df, cols_to_rename)
Description: Renames columns in a pandas DataFrame.
Usage: rename_cols(df, cols_to_rename)
12. merge_new_and_old(old_df, old_col, new_df, new_col, cutoff_date, date_col_name='OBS')
Description: Creates a new DataFrame with two columns: one for dates and one for merged numeric values.
Usage: merge_new_and_old(old_df, old_col, new_df, new_col, cutoff_date, date_col_name='OBS')
13. merge_dataframes_on_column(dataframes, common_column='OBS', merge_how='inner')
Description: Merge a list of DataFrames on a common column.
Usage: merge_dataframes_on_column(dataframes, common_column='OBS', merge_how='inner')
14. merge_and_update_dfs(df1, df2, key_column)
Description: Merges two dataframes on a key column, updates the first dataframe's columns with the second's where available, and returns a dataframe sorted by the key column.
Usage: merge_and_update_dfs(df1, df2, key_column)
15. convert_mixed_dates(df, date_col)
Description: Convert a DataFrame column with mixed date formats to datetime.
Usage: convert_mixed_dates(df, date_col)