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

如何为Pandas DataFrame的无列名第一列添加Power列名

问题根因
  • 你构造的输入字符串只有Speed一个表头,没有给第一列设置表头
  • 你指定的分隔符是制表符\t,但实际数据是用空格分隔的,导致pandas把两列数值识别为同一列,全部存入Speed列中
解决方案

直接在读取csv时指定分隔符和列名即可,不需要在输入字符串里单独加Speed表头:

from io import StringIO
import pandas as pd

parts = [
    '[Level1]\nLocation = "London"\nType= "GTHY66"\n'
    'Date = "16-11-2021"\nEnergy level = "Critical zero"\n',
    '0.000   26.788\n0.027   26.807\n0.053   26.860'
]

df_level2 = pd.read_csv(
    StringIO(parts[1]),
    sep='\s+',
    names=['Power', 'Speed']
)

print(df_level2.columns)
print(df_level2)
输出结果
Index(['Power', 'Speed'], dtype='object')
   Power   Speed
0  0.000  26.788
1  0.027  26.807
2  0.053  26.860

如果一定要保留原来的加表头的写法,也可以调整为:

lvl2_lines = "Power Speed\n" + parts[1]
df_level2 = pd.read_csv(StringIO(lvl2_lines), sep='\s+')

效果完全一致。

内容的提问来源于stack exchange,提问作者Al-Andalus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:54:06