如何将含多空格分隔数据的DataFrame拆分为多列?
解决不定空格分隔数据列的问题
针对你遇到的不定数量空格分隔的txt数据,有两种直接的解决方式:
方法一:读取文件时直接拆分列
在使用pd.read_csv读取文件时,指定分隔符为任意数量的空白字符(正则表达式\s+),同时可以直接设置列名:
import pandas as pd # 读取文件,sep='\s+'匹配任意数量的空格/制表符 df = pd.read_csv('your_file.txt', sep='\s+', names=['Column A', 'Column B', 'Column C', 'Column D'])
这样读取后直接得到4个独立的列,无需后续处理。
方法二:对已读取的单列数据拆分
如果已经将数据读入成单列DataFrame(比如列名为0),可以用str.split方法,指定expand=True将拆分结果转为多列,同时用\s+匹配不定空格:
# 假设已读取的DataFrame是df,单列名为0 split_df = df[0].str.split('\s+', expand=True) # 给拆分后的列重命名 split_df.columns = ['Column A', 'Column B', 'Column C', 'Column D']
注意:如果原数据行开头或结尾有多余空格,str.split会自动忽略(因为\s+匹配连续空白,开头的空白不会生成空值)。
之前你用split没得到预期结果,大概率是没指定正确的分隔符,或是没加expand=True参数——默认的拆分操作会返回列表形式的单列,而非独立的多列。
内容的提问来源于stack exchange,提问作者Melkyn Quintana
相关产品推荐
相关产品推荐

