import pandas as pd
def table_to_dataframe(rows):
return pd.DataFrame(rows[1:], columns=rows[0]).set_index(rows[0][0])
def matrix_to_dataframe(rows, tr=False):
col_labels = rows[0][1:]
row_labels = [row[0] for row in rows[1:]]
def label(pair):
return pair if not tr else (pair[1], pair[0])
data = {
label((rlabel, clabel)): rows[i + 1][j + 1]
for i, rlabel in enumerate(row_labels)
for j, clabel in enumerate(col_labels)
}
df = pd.Series(data).reset_index()
df.columns = ["index1", "index2", rows[0][0]]
return df.set_index(["index1", "index2"])