Python/Pandas读取空格分隔文本文件并拆分多列求助
解决Pandas读取空格分隔文本时数据全在一列的问题
一、直接用正确的读取方式(优先推荐)
pd.read_table默认以制表符(\t)作为分隔符,你的数据是空格分隔,需手动指定分隔符参数:
处理任意数量的空格/制表符
如果数据里是连续空格、单个空格或制表符混合的分隔,用正则表达式\s+匹配任意空白字符:
import pandas as pd # 方法1:用read_csv指定分隔符 df = pd.read_csv('你的文本文件路径.txt', sep='\s+') # 方法2:用read_table指定分隔符 df = pd.read_table('你的文本文件路径.txt', sep='\s+')
无表头的情况
如果原始数据没有表头,加上header=None避免把第一行数据当成表头:
df = pd.read_csv('你的文本文件路径.txt', sep='\s+', header=None) # 可手动给列命名 df.columns = ['列名1', '列名2', '列名3']
二、已读入单列数据后的拆分方法
如果已经把数据读到了单列(比如列名为data),用str.split时注意两个关键点:
- 用
\s+匹配任意空格,避免连续空格拆出空值 - 加上
expand=True直接展开成多列
示例代码:
# 拆分单列数据为多列 split_result = df['data'].str.split('\s+', expand=True) # 给拆分后的列命名 split_result.columns = ['列1', '列2', '列3', '列4']
注意事项
如果你的数据中存在带空格的字段(比如"John Doe"),这种纯按空格拆分的方法会出错,需确认数据格式为「字段无空格、仅用空格分隔字段」。
内容的提问来源于stack exchange,提问作者Rav86
相关产品推荐
相关产品推荐

