gpt4 book ai didi

python - Plotly:如何使用 Pandas 数据框作为源按行填充表

转载 作者:行者123 更新时间:2023-12-03 23:43:40 25 4
gpt4 key购买 nike

我有这个 df:vertical_stack = pd.concat([eu_table, us_table], axis=0):

           0   1   2   3   4   5   6   7   8   9   10  11
EU value 21 13 9 11 15 9 8 11 11 20 19 6
USA value 17 28 14 18 16 11 25 26 22 27 25 17
我想在 Plotly 中按行创建一个表格,但我只能垂直填充表格,其中“欧盟值”成为一列,其所有值都垂直填充。这是我使用的:
    fig3 = go.Figure(data=[go.Table(header=dict(values=['','Sept. 19', 'Oct. 19', 'Nov. 19', 'Dec. 19', 'Jan. 20', 'Feb. 20', 'Mar. 20', 
'Apr. 20', 'May 20', 'Jun. 20', 'Jul. 20', 'Aug. 20']),
cells=dict(values=[vertical_stack])
)])
这是我的输出:
Output
如您所见,所有值都填充在同一个单元格中。

最佳答案

我不确定是什么导致了您的错误,但我可以向您展示如何使用 Pandas 数据框构建表格,如下所示:

            0   1   2   3   4   5   6   7   8   9  10  11
EU value 21 13 9 11 15 9 8 11 11 20 19 6
USA value 17 28 14 18 16 11 25 26 22 27 25 17
并且因为您已经标记了您的问题 但在您的示例中仅使用了纯 plotly ,我不妨在两个单独的部分中为这两种方法提供建议。
第 1 部分 - Plotly 和 graph_objects
使用 df = pd.read_clipboard(sep='\\s+')df.to_dict()将让您构建一个可重复的数据框,如下所示:
df = pd.DataFrame({'0': {'EU value': 21, 'USA value': 17},
'1': {'EU value': 13, 'USA value': 28},
'2': {'EU value': 9, 'USA value': 14},
'3': {'EU value': 11, 'USA value': 18},
'4': {'EU value': 15, 'USA value': 16},
'5': {'EU value': 9, 'USA value': 11},
'6': {'EU value': 8, 'USA value': 25},
'7': {'EU value': 11, 'USA value': 26},
'8': {'EU value': 11, 'USA value': 22},
'9': {'EU value': 20, 'USA value': 27},
'10': {'EU value': 19, 'USA value': 25},
'11': {'EU value': 6, 'USA value': 17}})
这个数据样本更实用一些。
如果您是逐行或逐列向表格中添加数据,则无关紧要。对于您的示例,结果应该相同。如果以下建议对您的实际用例不起作用,请告诉我,我们可以讨论选项。
下面的代码片段将使用 go.Figure() 生成下图和 go.Table() .
表格1
enter image description here
plotly的完整代码
import plotly.graph_objects as go
import pandas as pd

df = pd.DataFrame({'0': {'EU value': 21, 'USA value': 17},
'1': {'EU value': 13, 'USA value': 28},
'2': {'EU value': 9, 'USA value': 14},
'3': {'EU value': 11, 'USA value': 18},
'4': {'EU value': 15, 'USA value': 16},
'5': {'EU value': 9, 'USA value': 11},
'6': {'EU value': 8, 'USA value': 25},
'7': {'EU value': 11, 'USA value': 26},
'8': {'EU value': 11, 'USA value': 22},
'9': {'EU value': 20, 'USA value': 27},
'10': {'EU value': 19, 'USA value': 25},
'11': {'EU value': 6, 'USA value': 17}})

df.reset_index(inplace=True)
df.rename(columns={'index':''}, inplace = True)

fig = go.Figure(data=[go.Table(
header=dict(values=list(df.columns),
fill_color='paleturquoise',
align='left'),
cells=dict(values=[df[col] for col in df.columns],
fill_color='lavender',
align='left'))
])

fig.show()
第 2 部分 - 使用 JupyterDash 进行 Plotly Dash
下面的代码段将使用以下内容生成下表:
dash_table.DataTable(
id='table',
columns=[{"name": i, "id": i} for i in df.columns],
data=df.to_dict('records')
表格1
enter image description here
JupyterDash 的完整代码
from jupyter_dash import JupyterDash
import dash_table
import pandas as pd

df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/solar.csv')
df = pd.DataFrame({'0': {'EU_value': 21, 'USA_value': 17},
'1': {'EU_value': 13, 'USA_value': 28},
'2': {'EU_value': 9, 'USA_value': 14},
'3': {'EU_value': 11, 'USA_value': 18},
'4': {'EU_value': 15, 'USA_value': 16},
'5': {'EU_value': 9, 'USA_value': 11},
'6': {'EU_value': 8, 'USA_value': 25},
'7': {'EU_value': 11, 'USA_value': 26},
'8': {'EU_value': 11, 'USA_value': 22},
'9': {'EU_value': 20, 'USA_value': 27},
'10': {'EU_value': 19, 'USA_value': 25},
'11': {'EU_value': 6, 'USA_value': 17}})

df.reset_index(inplace=True)
df.rename(columns={'index':''}, inplace = True)
app = JupyterDash(__name__)

app.layout = dash_table.DataTable(
id='table',
columns=[{"name": i, "id": i} for i in df.columns],
data=df.to_dict('records'),
)

app.run_server(mode='inline', port = 8070, dev_tools_ui=True,
dev_tools_hot_reload =True, threaded=True)

关于python - Plotly:如何使用 Pandas 数据框作为源按行填充表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64241027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com