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

如何用Python DataFrame按指定行数拆分列1并保留列2全量数据生成多份Excel文件

如何用Python DataFrame按指定行数拆分列1并保留列2全量数据生成多份Excel文件

嘿,我完全get到你的需求啦!就是要把Excel里的城市列每10个拆成一组,每组都搭配完整的人员列(每个城市都要对应所有人员),然后导出成多个独立的Excel文件对吧?用Pandas的DataFrame就能轻松实现,我给你一步步说清楚怎么做:

  • 第一步:导入所需库
    首先得导入Pandas,要是你想把生成的文件统一放到某个文件夹里,也可以导入os来管理路径:

    import pandas as pd
    import os
    
  • 第二步:读取原始Excel文件
    把你的原始Excel文件读进DataFrame里,记得替换成你自己的文件路径和列名:

    # 读取原始数据
    df = pd.read_excel("你的原始文件路径.xlsx")
    # 提取城市列和人员列,这里假设列名是"城市"和"人员",你可以改成自己的列名
    cities = df["城市"].drop_duplicates().tolist()  # 去重避免重复处理同一城市
    persons = df["人员"].drop_duplicates().tolist()  # 去重获取唯一的人员列表
    
  • 第三步:拆分城市列表为每10个一组
    用列表推导式把城市列表拆分成每10个元素为一组的子列表,最后一组如果不足10个也会自动保留:

    # 按每10个城市拆分
    city_groups = [cities[i:i+10] for i in range(0, len(cities), 10)]
    
  • 第四步:循环生成并导出每个Excel文件
    遍历每个城市组,和完整的人员列表做交叉连接(让每个城市都对应所有人员),然后导出成Excel文件:

    # 创建存放文件的文件夹(可选,不想创建的话可以跳过这步)
    if not os.path.exists("拆分后的文件"):
        os.makedirs("拆分后的文件")
    
    # 循环处理每个城市组
    for file_num, city_group in enumerate(city_groups, start=1):
        # 把当前城市组转成DataFrame
        city_df = pd.DataFrame({"城市": city_group})
        # 把人员列表转成DataFrame
        person_df = pd.DataFrame({"人员": persons})
        # 交叉连接,得到每个城市对应所有人员的组合
        result_df = city_df.merge(person_df, how="cross")
        # 导出到Excel,保存到指定文件夹
        output_path = f"拆分后的文件/File_{file_num}.xlsx"
        result_df.to_excel(output_path, index=False)
        print(f"已成功生成:{output_path}")
    

这样运行之后,你就能得到一个个符合要求的Excel文件啦!比如第一个文件是前10个城市搭配所有人员,第二个是接下来的10个,直到所有城市都处理完。

备注:内容来源于stack exchange,提问作者User646972

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 11:02:59