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

如何对pandas中read.table的输出结果按日期列进行索引?

解决Pandas无法识别Day1-Day7为列索引的问题

这问题我之前也碰到过,核心原因是你用pd.read_table()读取数据时,没有正确匹配数据的分隔规则,导致第一行的Day1-Day7没被识别成列名,自然没法用loc按列索引。

问题分析

你的数据是用空格分隔的,但pd.read_table()默认的分隔符是制表符(\t),所以Pandas会把整行的Day1-Day7当成第一行数据的一部分,列名变成默认的0、1、2...这类数字索引,这就是你用loc索引失败的原因。

解决方案

修改读取代码,指定正确的分隔符和表头参数:

import pandas as pd
# sep='\s+' 匹配任意数量的空格作为分隔符,header=0 指定第一行为列名
data = pd.read_table("data.txt", sep='\s+', header=0)

验证效果

执行以下代码确认列名是否正确识别:

print(data.columns)
# 输出应该是:Index(['Day1', 'Day2', 'Day3', 'Day4', 'Day5', 'Day6', 'Day7'], dtype='object')

之后你就可以正常用loc索引列了,比如:

# 获取Day1列的所有数据
print(data.loc[:, 'Day1'])
# 获取第0行到第2行的Day3和Day5列数据
print(data.loc[0:2, ['Day3', 'Day5']])

额外排查点

如果还是不行,检查你的data.txt文件第一行是否有多余的空格、换行符或者特殊字符,确保第一行确实是干净的列名(Day1 Day2 ... Day7)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:44:03