You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Plotly表格日期列排序异常及时间戳显示问题求助

Plotly表格日期排序与时间戳显示问题解决

问题1:DataFrame按日期降序排序后,Plotly表格未同步顺序

原因

df.sort_values(by='Date',ascending=False)默认不会修改原DataFrame,而是返回一个排序后的新对象。你没把这个新结果赋值给原df,导致Plotly调用的还是未排序的原始数据。

解决方法

二选一即可:

  • 直接修改原df:
    df.sort_values(by='Date', ascending=False, inplace=True)
    
  • 将排序结果重新赋值给df:
    df = df.sort_values(by='Date', ascending=False)
    

问题2:DataFrame中无时间戳,但Plotly表格显示时间戳

原因

你的Date列是datetime类型,Pandas显示DataFrame时会自动省略默认的00:00:00时间部分,但Plotly渲染datetime类型数据时,会完整展示日期和时间戳。

解决方法

把datetime类型的日期转换成指定格式的字符串,Plotly就只会显示日期部分:
在排序步骤前添加一行代码:

df['Date'] = df['Date'].dt.strftime('%Y-%m-%d')

修改后的完整代码

data = response.json() 

data1 = data['data']
rates = data1['rates']
rates_dic = rates.items() 

df = pd.DataFrame(rates_dic) 
df[1] = [x[symbol] for x in df[1]]
df.rename(columns = {0:'Date', 1:'Price'}, inplace=True)
df.Price = 1 / df.Price 
df['Price'] = df['Price'].map('${:,.2f}'.format)
df['Date'] = pd.to_datetime(df['Date'])
# 转换日期为字符串,移除时间戳
df['Date'] = df['Date'].dt.strftime('%Y-%m-%d')
# 对日期降序排序
df.sort_values(by='Date', ascending=False, inplace=True)

fig = go.Figure(data=[go.Table(
        columnorder = [1,2],
        columnwidth=[1,1],
        header=dict(values=list(df.columns),
                    fill_color='black',
                    align='center'),
        cells=dict(values=[df.Date, df.Price],
                    fill_color='black',
                    align='left'))
    ])
fig.layout.width=500
fig.layout.height=1000
fig.update_traces(header_font=dict(size=15))

内容的提问来源于stack exchange,提问作者langermc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 20:01:12