有没有办法将 Pandas pivot_table 放入 Plotly table?
Is there a way to put a Pandas pivot_table into a Plotly table?
我有一个使用 Pandas pivot_table 创建的枢轴 table,我想在 Plotly table 中显示结果。我已成功填充索引列,但不确定如何填充其余值:
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()
这是一个旋转的字典 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}]
如能提供有关如何执行此操作的任何帮助,我们将不胜感激。谢谢。
根据https://plotly.com/python/table/#styled-table,您可以放置多个元素,例如:
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'))
但是如果你想为不同的数据重用你的代码并使其干净,那么你可以使用以下代码:
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()
输出图片
我有一个使用 Pandas pivot_table 创建的枢轴 table,我想在 Plotly table 中显示结果。我已成功填充索引列,但不确定如何填充其余值:
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()
这是一个旋转的字典 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}]
如能提供有关如何执行此操作的任何帮助,我们将不胜感激。谢谢。
根据https://plotly.com/python/table/#styled-table,您可以放置多个元素,例如:
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'))
但是如果你想为不同的数据重用你的代码并使其干净,那么你可以使用以下代码:
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()
输出图片