Open larsbuntemeyer opened 4 months ago
prototype code to create excel with one sheet per prio and a grouped overview:
import pandas as pd
cols = ['out_name', 'standard_name', 'long_name', 'cell_methods']
def human_readable(df):
return df.groupby(cols)['frequency'].apply(list).to_frame()#.reset_index()
#df.groupby('priority').apply(human_readable, include_groups=False)
df = pd.read_csv("CORDEX-CMIP6/data-request.csv")
#human_readable(df)
sheets = {k: human_readable(v) for k, v in df.groupby('priority')}
with pd.ExcelWriter('data-request.xlsx') as writer:
for k, v in sheets.items():
v.to_excel(writer, sheet_name=k, index=True)
nlevels = v.index.nlevels + len(v.columns)
worksheet = writer.sheets[k] # pull worksheet object
for i in range(nlevels):
worksheet.set_column(i, i, 40)
# for idx, col in enumerate(v): # loop through all columns
# print(idx)
# series = v[col]
# max_len = max((
# series.astype(str).map(len).max(), # len of largest item
# len(str(series.name)) # len of column name/header
# )) + 1 # adding a little extra space
# worksheet.set_column(idx, idx, max_len) # set column width
We had one in the old data request, we should reimplement that here:
See als example from IMPETUS: