根据列值将 Excel 文件拆分为多个文件

Split Excel File into multiple files based on column value

提问人:techbump01 提问时间:11/14/2023 最后编辑:Corralientechbump01 更新时间:11/14/2023 访问量:68

问:

我正在尝试将 excel 文件拆分为许多不同的 excel 文件,其中包含特定列的分组值。我还希望将每个 excel 文件命名为正在分组的特定值。示例:一个员工有 10 条记录,并且他们的员工 ID 都为“EMPLOYEE”。该员工的档案中将包含所有 10 条记录,文件名将是他们的 ID。 我能得到一些帮助吗?以下是我目前拥有的代码。

import pandas as pd #pip install pandas
import os

df = pd.read_excel('filename.xlsx')
column_name = 'EMPLOYEE'
unique_values = df[column_name].unique()

for unique_value in unique_values:
df_output = df[df[column_name].str.contains(unique_value)]
output_path = os.path.join('Lists', unique_value + '.xlsx')
df_output.to_excel(output_path, sheet_name=unique_value, index=False)
Python 熊猫 Excel

评论

1赞 Corralien 11/14/2023
你的代码有什么问题。如果出现错误,请提供完整的回溯?
0赞 techbump01 11/14/2023
@Corralien 这就是我得到的 -> KeyError: 'EMPLOYEE'
0赞 OCa 11/14/2023
欢迎。总是在某一行特别引发错误。什么线?关于 [ask@ 和最小的可重现示例,df 是什么样子的,或者它应该是什么样子(请作为文本)?此外,验证代码缩进。这是有问题的。
0赞 Community 11/14/2023
请澄清您的具体问题或提供其他详细信息,以准确说明您的需求。正如目前所写的那样,很难确切地说出你在问什么。

答:

0赞 Scott Boston 11/14/2023 #1

IIUC,试试这个:

import pandas as pd #pip install pandas
import os

df = pd.read_excel('filename.xlsx')
df.columns = df.columns.str.strip()
column_name = 'EMPLOYEE'
unique_values = df[column_name].unique()

for n, g in df.groupby(column_name):
    output_path = os.path.join('Lists', f'{n}.xlsx')
    g.to_excel(output_path, sheet_name=n, index=False)

评论

0赞 techbump01 11/14/2023
“Employee”中的值是整数
0赞 Scott Boston 11/14/2023
如果出现某种错误,可以用 n 换行。str(n)