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

Python读取制表符分隔文件:如何拆分列并去除制表符?

解决制表符/空白分隔文件的解析问题

嘿,作为Python新手遇到这种数据解析问题很正常,我来帮你搞定!

问题根源

你当前的代码里,pd.read_csv()默认是用逗号作为字段分隔符,但这个种子数据集的文件是用制表符或多个空格来分隔值的,所以所有数据都被挤到了同一列里,就出现了你看到的当前效果。

修正后的代码

只需要给read_csv()加上几个关键参数就能解决问题,同时我们可以给数据集加上对应的列名(原文件没有表头):

import pandas as pd
import io
import requests

url = "https://archive.ics.uci.edu/ml/machine-learning-databases/00236/seeds_dataset.txt"
s = requests.get(url).content
# 用\s+匹配任意空白字符(制表符/空格都适用),header=None表示无表头
df = pd.read_csv(io.StringIO(s.decode('utf-8')), sep='\s+', header=None)
# 给数据集添加列名(根据UCI数据集说明)
df.columns = [
    "area", 
    "perimeter", 
    "compactness", 
    "length_of_kernel", 
    "width_of_kernel", 
    "asymmetry_coefficient", 
    "length_of_groove", 
    "type"
]

# 查看前几行验证效果
print(df.head())

参数说明

  • sep='\s+':告诉pandas用任意数量的空白字符(包括制表符\t、单个或多个空格)作为分隔符,完美适配这个数据集的格式;
  • header=None:因为原文件没有第一行作为表头,所以让pandas不要把第一行数据识别为列名;
  • 手动设置df.columns:让数据集的列更有意义,方便后续分析。

这样处理后,数据就会自动拆分到不同的列中,和你期望的效果一致啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:19:57