下面我将详细讲解“pythonexcel多行合并的方法”的完整实例教程。
标题
问题
如何用Python的pandas库将Excel表格中的多行合并成一行?
解决方法
使用pandas库,可以轻松实现多行合并功能,具体操作步骤如下:
1.导入pandas模块
import pandas as pd
2.读取Excel文件
df = pd.read_excel('file_path.xlsx')
3.设置需要合并的列
cols = ['col_name1', 'col_name2']
4.使用groupby方法对需要合并的列进行分组,并使用agg方法对非分组列进行合并
df = df.groupby(cols).agg({'col_name3': lambda x: ','.join(x), 'col_name4': 'first'}).reset_index()
5.保存结果
df.to_excel('result.xlsx', index=False)
示例说明
假如我们有一个名为sample.xlsx
的Excel文件,里面包含以下内容:
姓名 | 科目 | 成绩 |
---|---|---|
张三 | 数学 | 90 |
张三 | 英语 | 80 |
李四 | 数学 | 85 |
李四 | 英语 | 90 |
王五 | 数学 | 95 |
王五 | 英语 | 95 |
我们想要按照姓名进行分组,将同一姓名的多行合并成一行,结果应该如下:
姓名 | 科目 | 成绩 |
---|---|---|
张三 | 数学,英语 | 90,80 |
李四 | 数学,英语 | 85,90 |
王五 | 数学,英语 | 95,95 |
使用以上代码,我们可以轻松地实现这一需求。
另外一个示例是,假如我们有一个名为sample.xlsx
的Excel文件,里面包含以下内容:
姓名 | 科目 | 成绩 | 日期 |
---|---|---|---|
张三 | 数学 | 90 | 2019-01-01 |
张三 | 数学 | 80 | 2019-01-03 |
张三 | 英语 | 85 | 2019-01-02 |
李四 | 数学 | 85 | 2019-01-01 |
李四 | 英语 | 90 | 2019-01-02 |
王五 | 数学 | 95 | 2019-01-01 |
王五 | 英语 | 95 | 2019-01-02 |
我们想要按照姓名和科目进行分组,将同一姓名和科目的结果合并成一行,结果应该如下:
姓名 | 科目 | 成绩 | 日期 |
---|---|---|---|
张三 | 数学 | 90,80 | 2019-01-01,2019-01-03 |
张三 | 英语 | 85 | 2019-01-02 |
李四 | 数学 | 85 | 2019-01-01 |
李四 | 英语 | 90 | 2019-01-02 |
王五 | 数学 | 95 | 2019-01-01 |
王五 | 英语 | 95 | 2019-01-02 |
使用以上代码,我们同样可以轻松地实现这一需求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python excel多行合并的方法 - Python技术站