代码之家  ›  专栏  ›  技术社区  ›  Led

python:如何拆分按第一列分组的Excel文件

  •  0
  • Led  · 技术社区  · 6 年前

    我有一个表需要拆分成多个文件,按列1中的值分组-序列号。

    +--------+--------+-------+
    | serial |  name  | price |  
    +--------+--------+-------+
    | 100-a  | rdl    |   123 |  
    | 100-b  | gm1    |  -120 |  
    | 100-b  | gm1    |   123 |  
    | 180r   | xxom   |    12 |  
    | 182d   | data11 | 11.50 |  
    +--------+--------+-------+
    

    输出如下:

    100-a.xls
    100-b.xls
    180r.xls etc.etc.
    

    打开100-B.XLS意味着:

    +--------+------+-------+
    | serial | name | price |  
    +--------+------+-------+
    | 100-b  | gm1  |  -120 |  
    | 100-b  | gm1  |   123 |  
    +--------+------+-------+
    

    我尝试使用pandas通过以下代码定义数据帧:

    import pandas as pd
    #from itertools import groupby
    
    df = pd.read_excel('myExcelFile.xlsx')
    

    我很成功地获得了数据框架,但我不知道下一步该怎么做。我试着跟着这个 similar question on Stackoverflow 但是情况有点不同。下一步该怎么办?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Nick M    6 年前

    这不是GroupBy,而是一个筛选器。

    您需要遵循两个步骤:

    1. 在Excel文件中生成所需的数据
    2. 将数据框另存为Excel。

    像这样的东西就可以了-

    for x in list(df.serial.unique()) :
        df[df.serial == x].to_excel("{}.xlsx".format(x))