diff --git a/ut3_survival/realist.py b/ut3_survival/realist.py index 1b32adbc993b692f67f27555c8e1805f2ae96c43..8a554a000a0af85cea33e661aaad41b9d75eb41c 100644 --- a/ut3_survival/realist.py +++ b/ut3_survival/realist.py @@ -65,3 +65,13 @@ def read_parse_several_xls(xls_filenames: [str], lower: bool=None) -> [StudentEn def student_entry_list_to_df(students: [StudentEntry]) -> pandas.DataFrame: '''Create a DataFrame from a student list.''' return pandas.DataFrame(students, columns=student_columns) + +def read_parse_csv(csv_filename: str) -> pandas.DataFrame: + df = pandas.read_csv(csv_filename) + + expected_columns = set(student_columns) + parsed_columns = {str(x) for x in df.columns} + if not expected_columns.issubset(parsed_columns): + raise RuntimeError(f"missing columns in csv file '{csv_filename}': {expected_columns - parsed_columns}") + + return df