I have a pivot table that I created using Pandas pivot_table and want to display the results in an Plotly table. I have successfully filled the index column but am not sure how to fill the rest of the values:

table = table.reset_index()
fig = go.Figure(data=[go.Table(
header=dict(values=list(table.columns.tolist()),
fill_color='paleturquoise',
align='left'),
cells=dict(values=[table['code']],
fill_color='lavender',
align='left'))
])
fig.show()
And here's a dictionary of the pivoted table:
[{"code":44950,"ABBOTT NORTHWESTERN HOSPITAL":4546.2512817383,"CHILDREN'S HOSPITALS & CLINICS OF MN":7802.2425130208,"HENNEPIN COUNTY MEDICAL CENTER 1":869.4294606802,"PARK NICOLLET METHODIST HOSPITAL":null,"UNIVERSITY OF MINNESOTA MEDICAL CENTER, FAIRVIEW":7898.8365783691},{"code":70450,"ABBOTT NORTHWESTERN HOSPITAL":424.8267141707,"CHILDREN'S HOSPITALS & CLINICS OF MN":2264.7491921216,"HENNEPIN COUNTY MEDICAL CENTER 1":220.6921879649,"PARK NICOLLET METHODIST HOSPITAL":213.5044436985,"UNIVERSITY OF MINNESOTA MEDICAL CENTER, FAIRVIEW":343.2730032114},{"code":76805,"ABBOTT NORTHWESTERN HOSPITAL":367.9092678447,"CHILDREN'S HOSPITALS & CLINICS OF MN":6052.9498485268,"HENNEPIN COUNTY MEDICAL CENTER 1":159.4268743396,"PARK NICOLLET METHODIST HOSPITAL":248.8700002035,"UNIVERSITY OF MINNESOTA MEDICAL CENTER, FAIRVIEW":252.9390616784},{"code":77066,"ABBOTT NORTHWESTERN HOSPITAL":336.7092620511,"CHILDREN'S HOSPITALS & CLINICS OF MN":null,"HENNEPIN COUNTY MEDICAL CENTER 1":127.4571880102,"PARK NICOLLET METHODIST HOSPITAL":null,"UNIVERSITY OF MINNESOTA MEDICAL CENTER, FAIRVIEW":248.553898738},{"code":80048,"ABBOTT NORTHWESTERN HOSPITAL":89.2373663649,"CHILDREN'S HOSPITALS & CLINICS OF MN":170.8316176919,"HENNEPIN COUNTY MEDICAL CENTER 1":43.2383953318,"PARK NICOLLET METHODIST HOSPITAL":23.0844444699,"UNIVERSITY OF MINNESOTA MEDICAL CENTER, FAIRVIEW":45.4282953556},{"code":97110,"ABBOTT NORTHWESTERN HOSPITAL":102.2439455629,"CHILDREN'S HOSPITALS & CLINICS OF MN":83.8876704011,"HENNEPIN COUNTY MEDICAL CENTER 1":58.4574673764,"PARK NICOLLET METHODIST HOSPITAL":90.8655548096,"UNIVERSITY OF MINNESOTA MEDICAL CENTER, FAIRVIEW":69.6076442719},{"code":99203,"ABBOTT NORTHWESTERN HOSPITAL":440.9728189782,"CHILDREN'S HOSPITALS & CLINICS OF MN":200.125572077,"HENNEPIN COUNTY MEDICAL CENTER 1":143.6352518082,"PARK NICOLLET METHODIST HOSPITAL":null,"UNIVERSITY OF MINNESOTA MEDICAL CENTER, FAIRVIEW":null}]
Any help on how to do this would be appreciated. Thanks.
According to https://plotly.com/python/table/#styled-table you can put multiple elements like:
cells=dict(values=[table['code'],
table['ABBOTT NORTHWESTERN HOSPITAL'],
table["CHILDREN'S HOSPITALS & CLINICS OF MN"],
table["HENNEPIN COUNTY MEDICAL CENTER 1"],
table["PARK NICOLLET METHODIST HOSPITAL"],
table["UNIVERSITY OF MINNESOTA MEDICAL CENTER, FAIRVIEW"]],
fill_color='lavender',
align='left'))
But if you want to reuse your code for different data and make it clean then you can use the following code:
import plotly.graph_objects as go #plotly
import numpy as np #for reshape
#your data
data = [{"code":44950,"ABBOTT NORTHWESTERN HOSPITAL":4546.2512817383,"CHILDREN'S HOSPITALS & CLINICS OF MN":7802.2425130208,"HENNEPIN COUNTY MEDICAL CENTER 1":869.4294606802,"PARK NICOLLET METHODIST HOSPITAL":"null","UNIVERSITY OF MINNESOTA MEDICAL CENTER, FAIRVIEW":7898.8365783691},{"code":70450,"ABBOTT NORTHWESTERN HOSPITAL":424.8267141707,"CHILDREN'S HOSPITALS & CLINICS OF MN":2264.7491921216,"HENNEPIN COUNTY MEDICAL CENTER 1":220.6921879649,"PARK NICOLLET METHODIST HOSPITAL":213.5044436985,"UNIVERSITY OF MINNESOTA MEDICAL CENTER, FAIRVIEW":343.2730032114},{"code":76805,"ABBOTT NORTHWESTERN HOSPITAL":367.9092678447,"CHILDREN'S HOSPITALS & CLINICS OF MN":6052.9498485268,"HENNEPIN COUNTY MEDICAL CENTER 1":159.4268743396,"PARK NICOLLET METHODIST HOSPITAL":248.8700002035,"UNIVERSITY OF MINNESOTA MEDICAL CENTER, FAIRVIEW":252.9390616784},{"code":77066,"ABBOTT NORTHWESTERN HOSPITAL":336.7092620511,"CHILDREN'S HOSPITALS & CLINICS OF MN":"null","HENNEPIN COUNTY MEDICAL CENTER 1":127.4571880102,"PARK NICOLLET METHODIST HOSPITAL":"null","UNIVERSITY OF MINNESOTA MEDICAL CENTER, FAIRVIEW":248.553898738},{"code":80048,"ABBOTT NORTHWESTERN HOSPITAL":89.2373663649,"CHILDREN'S HOSPITALS & CLINICS OF MN":170.8316176919,"HENNEPIN COUNTY MEDICAL CENTER 1":43.2383953318,"PARK NICOLLET METHODIST HOSPITAL":23.0844444699,"UNIVERSITY OF MINNESOTA MEDICAL CENTER, FAIRVIEW":45.4282953556},{"code":97110,"ABBOTT NORTHWESTERN HOSPITAL":102.2439455629,"CHILDREN'S HOSPITALS & CLINICS OF MN":83.8876704011,"HENNEPIN COUNTY MEDICAL CENTER 1":58.4574673764,"PARK NICOLLET METHODIST HOSPITAL":90.8655548096,"UNIVERSITY OF MINNESOTA MEDICAL CENTER, FAIRVIEW":69.6076442719},{"code":99203,"ABBOTT NORTHWESTERN HOSPITAL":440.9728189782,"CHILDREN'S HOSPITALS & CLINICS OF MN":200.125572077,"HENNEPIN COUNTY MEDICAL CENTER 1":143.6352518082,"PARK NICOLLET METHODIST HOSPITAL":"null","UNIVERSITY OF MINNESOTA MEDICAL CENTER, FAIRVIEW":"null"}]
#get header of data
data_columns = list(data[0].keys())
#get values of data and put them in a list
data_values = list(i[j] for j in data_columns for i in data) # I used comprehension expression
#reshape the list because of plotly ordering type.
data_values = np.reshape(data_values, (-1, len(data)))
#figure for plotly
fig = go.Figure(data=[go.Table(
header=dict(values=data_columns,
fill_color='paleturquoise',
align='left'),
cells=dict(values=data_values,
fill_color='lavender',
align='left'))
])
#show figure
fig.show()
Output picture

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With