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

Pandas选取单列时列名缺失问题及便捷解决方法

保留DataFrame列名的便捷选取方法

当用以下方式选取Pandas DataFrame的speed列时:

df.speed # 自动补全很方便...
df['speed']
df.loc[:,'speed']

返回的是Series对象,只会显示索引和数据,缺失列名:

Time
2022-07-27 11:33:16.279157    45.000000
2022-07-27 11:33:16.628157    44.928571
2022-07-27 11:33:17.093157    44.857143
2022-07-27 11:33:17.449157    44.785714

而使用df.filter(regex="speed")时,返回的是DataFrame对象,会保留列名:

speed
Time    
2022-07-27 11:33:16.279157  45.000000
2022-07-27 11:33:16.628157  44.928571
2022-07-27 11:33:17.093157  44.857143
2022-07-27 11:33:17.449157  44.785714
2022-07-27 11:33:17.885157  44.714286

这导致df.filter(regex="speed").plot()能直接生成带正确值轴名称的图表,而df.speed.plot(label="speed")必须配合plt.legend()才能显示图例。以下是几种更便捷的处理方式:

  • 用列表形式选取列:把列名放进列表,返回的是DataFrame而非Series,既能保留自动补全的便利,又能保留列名:

    df[['speed']]
    df.loc[:, ['speed']]
    

    直接调用.plot()就会自动带上列名作为图例和轴标签,无需额外设置。

  • Series转DataFrame:如果习惯用df.speed这种属性访问方式,拿到Series后用to_frame()快速转换:

    df.speed.to_frame().plot()
    

    转换后再绘图就会自动识别列名。

  • plot时直接设置参数:不想改数据结构的话,直接在plot()里指定参数一步到位:

    df.speed.plot(ylabel='speed', legend=True)
    

    不用单独调用plt.legend(),就能得到带正确标签的图表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 04:27:27