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

将Pandas列按空格拆分为多列并合并多源Excel文件

Got it!我来一步步帮你解决这两个问题,都是处理多空格分隔数据的常见场景,往下看:

1. 用空格将Pandas中的一列拆分为多列

如果你的列里是多个连续空格分隔的值,直接按单个空格拆分会产生空列,所以得用正则匹配任意多空格来处理。这里用Pandas的str.split()方法,搭配expand=True参数直接生成多列:

import pandas as pd

# 先读取你的数据(比如从Excel导入)
df = pd.read_excel("your_single_file.xlsx")

# 拆分多空格分隔的列:r'\s+'匹配1个或多个空格,expand=True直接转为多列
split_columns = df['目标列名'].str.split(r'\s+', expand=True)

# 给新拆分的列命名(比如col1、col2...)
split_columns.columns = [f'拆分列{i+1}' for i in range(split_columns.shape[1])]

# 如果需要和原数据合并,用concat拼接
final_df = pd.concat([df, split_columns], axis=1)

要是你不确定原列名,也可以用索引选取,比如df.iloc[:, 0]代表第一列。

2. 合并多个仅含一列多空格分隔数据的Excel文件

这个需求可以拆成「遍历读取文件→拆分列→合并所有数据」三个步骤,代码里还加了来源文件名的追踪,方便你后续排查:

import pandas as pd
import os

# 第一步:设置存放所有Excel文件的文件夹路径
folder_path = "你的Excel文件夹路径"

# 第二步:筛选出文件夹里所有Excel文件(.xlsx和.xls都覆盖)
excel_files = [
    f for f in os.listdir(folder_path)
    if f.lower().endswith(('.xlsx', '.xls'))
]

# 初始化空列表,用来存每个文件处理后的结果
processed_data = []

for file_name in excel_files:
    # 拼接完整文件路径
    file_path = os.path.join(folder_path, file_name)
    # 读取文件的第一列(因为所有源文件只有一列)
    single_col_df = pd.read_excel(file_path, usecols=[0])
    # 拆分列,和上面的逻辑一致
    split_df = single_col_df.iloc[:, 0].str.split(r'\s+', expand=True)
    # 添加一列记录来源文件名,方便溯源
    split_df['来源文件'] = file_name
    # 把处理好的数据加入列表
    processed_data.append(split_df)

# 第三步:合并所有处理后的数据框
merged_result = pd.concat(processed_data, ignore_index=True)

# 给合并后的列命名(最后一列是来源文件)
col_names = [f'数据列{i+1}' for i in range(merged_result.shape[1]-1)] + ['来源文件']
merged_result.columns = col_names

# 保存最终合并结果到新Excel
merged_result.to_excel("合并后的结果.xlsx", index=False)

小提示

如果不同文件拆分后的列数不一样,Pandas会自动在缺列的地方补NaN,这是正常现象;要是你确定所有文件的拆分列数一致,可以直接指定固定的列名,不用动态生成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:49:40