首页 > 后端开发 > Python教程 > 如何在Python中高效地合并多个DataFrame?

如何在Python中高效地合并多个DataFrame?

DDD
发布: 2024-11-29 13:13:09
原创
779 人浏览过

How to Efficiently Merge Multiple DataFrames in Python?

如何合并多个数据帧

问题

合并多个数据帧可能会很复杂且令人沮丧,尤其是当数据帧数量增加时。虽然可以使用嵌套合并函数,但这种方法变得难以管理且容易出错。

解决方案

要以更优雅、更高效的方式合并多个数据帧,请考虑以下解决方案:

import pandas as pd
from functools import reduce

# Initialize a list of dataframes
dfs = [df1, df2, df3]

# Merge the dataframes using the reduce function
df_merged = reduce(lambda left, right: pd.merge(left, right, on=['DATE'], how='outer'), dfs)
登录后复制

该解决方案利用 functools 模块中的reduce 函数来迭代合并数据帧。 lambda 函数定义合并操作,使用指定的列进行连接('DATE'),并使用 'outer' 合并方法保留所有行。

优点

干净且易于理解: 该解决方案提供了一种清晰简洁的方法来合并多个数据帧,消除了复杂的嵌套合并的需要

有效处理多个数据帧:此解决方案可以处理任意数量的数据帧,使其可扩展且方便。

示例

考虑以下内容dataframes:

df_1:
May 19, 2017;1,200.00;0.1%
May 18, 2017;1,100.00;0.1%
May 17, 2017;1,000.00;0.1%
May 15, 2017;1,901.00;0.1%

df_2:
May 20, 2017;2,200.00;1000000;0.2%
May 18, 2017;2,100.00;1590000;0.2%
May 16, 2017;2,000.00;1230000;0.2%
May 15, 2017;2,902.00;1000000;0.2%

df_3:
May 21, 2017;3,200.00;2000000;0.3%
May 17, 2017;3,100.00;2590000;0.3%
May 16, 2017;3,000.00;2230000;0.3%
May 15, 2017;3,903.00;2000000;0.3%
登录后复制

使用提供的解决方案,我们可以合并这些数据框:

df_merged = reduce(lambda left, right: pd.merge(left, right, on=['DATE'], how='outer'), dfs)
登录后复制

结果:

DATE    VALUE1    VALUE2    VALUE3
May 15, 2017;  1,901.00;0.1%;  2,902.00;1000000;0.2%;   3,903.00;2000000;0.3%
登录后复制

以上是如何在Python中高效地合并多个DataFrame?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板