21 lines
935 B
Python
21 lines
935 B
Python
import numpy as np
|
|
import pandas as pd
|
|
import streamlit as st
|
|
|
|
reserved_columns = ['Nachname', 'Vorname', 'Punkte', 'Note']
|
|
|
|
def update_columns(new_columns, table):
|
|
if len(table) > 0:
|
|
# Drop table columns that are not in the list of columns
|
|
for column in table.columns:
|
|
if column not in new_columns and column not in reserved_columns+list(st.session_state.session.students_df.columns):
|
|
table.drop(column, axis=1, inplace=True)
|
|
# Add columns that are in the list of columns but not in the table
|
|
for column in new_columns:
|
|
if column not in table.columns:
|
|
table[column] = pd.Series(np.nan, index=table.index, dtype='float64')
|
|
# Reorder columns
|
|
before_reorder = table.columns
|
|
original_columns = [col for col in before_reorder if col not in new_columns]
|
|
table = table[original_columns + new_columns]
|
|
return table |