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

如何移除Pandas DataFrame表头首行并修改列名为RSI

解决Pandas DataFrame索引与列名格式化问题

我通过getRSI函数获取到一个Pandas DataFrame,当前数据结构如下:

RSI
Date                                
2023-10-02 00:00:00+11:00        NaN
2023-10-03 00:00:00+11:00        NaN
2023-10-04 00:00:00+11:00        NaN
2023-10-05 00:00:00+11:00        NaN
2023-10-06 00:00:00+11:00        NaN
2023-10-09 00:00:00+11:00        NaN
2023-10-10 00:00:00+11:00        NaN
2023-10-11 00:00:00+11:00        NaN
2023-10-12 00:00:00+11:00        NaN
2023-10-13 00:00:00+11:00        NaN
2023-10-16 00:00:00+11:00        NaN
2023-10-17 00:00:00+11:00        NaN
2023-10-18 00:00:00+11:00        NaN
2023-10-19 00:00:00+11:00        NaN
2023-10-20 00:00:00+11:00  47.058827
2023-10-23 00:00:00+11:00  50.212766
2023-10-24 00:00:00+11:00  47.185484
2023-10-25 00:00:00+11:00  44.308668
2023-10-26 00:00:00+11:00  44.308668
2023-10-27 00:00:00+11:00  44.308668
2023-10-30 00:00:00+11:00  44.308668

我需要移除索引对应的空表头行,将Date设为第一列列名,保留第二列的RSI列名,最终效果如下:

Date                             RSI  
2023-10-02 00:00:00+11:00        NaN
2023-10-03 00:00:00+11:00        NaN
2023-10-04 00:00:00+11:00        NaN
2023-10-05 00:00:00+11:00        NaN
2023-10-06 00:00:00+11:00        NaN
2023-10-09 00:00:00+11:00        NaN
2023-10-10 00:00:00+11:00        NaN
2023-10-11 00:00:00+11:00        NaN
2023-10-12 00:00:00+11:00        NaN
2023-10-13 00:00:00+11:00        NaN
2023-10-16 00:00:00+11:00        NaN
2023-10-17 00:00:00+11:00        NaN
2023-10-18 00:00:00+11:00        NaN
2023-10-19 00:00:00+11:00        NaN
2023-10-20 00:00:00+11:00  47.058827
2023-10-23 00:00:00+11:00  50.212766
2023-10-24 00:00:00+11:00  47.185484
2023-10-25 00:00:00+11:00  44.308668
2023-10-26 00:00:00+11:00  44.308668
2023-10-27 00:00:00+11:00  44.308668
2023-10-30 00:00:00+11:00  44.308668

我尝试过df.iloc[0]等方法但未成功,当前代码如下:

rsiData = getRSI(asx_stock)
print("rsiData type:", type(rsiData))

df = pd.DataFrame(data=rsiData)
print(df)
monthly_rsiData_html = Markup(df.to_html())

解决方案

问题核心是Date当前是DataFrame的索引,而非普通列,导致显示时出现空表头行。只需将索引转为普通列即可实现目标效果:

方法1:直接重置索引

rsiData = getRSI(asx_stock)
# 将索引转为普通列,原索引名Date会自动成为列名
df = rsiData.reset_index()
print(df)
monthly_rsiData_html = Markup(df.to_html())

方法2:手动指定列名(应对异常情况)

如果重置索引后列名不符合预期,可手动设置:

rsiData = getRSI(asx_stock)
df = rsiData.reset_index()
# 强制指定列名
df.columns = ['Date', 'RSI']
print(df)
monthly_rsiData_html = Markup(df.to_html())

说明

  • df.iloc[0]用于选取行数据,无法解决索引转列的问题,因此无效。
  • 将索引转为普通列后,Date会和RSI列名显示在同一行,消除多余的空表头。

内容的提问来源于stack exchange,提问作者mylottofinder.com.au

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 07:09:52