如何堆叠多个 Pandas DataFrames?

pythonserver side programmingprogramming

Python 的浩瀚宇宙包含一个名为 Pandas 的闪亮星座。它因其在数据管理和操作方面的强大功能而享誉全球,它为数据分析师提供了工具,这些工具可以作为他们思想的延伸,将想法转化为现实。

本次讨论的关键在于 Pandas 的一个特殊功能,即沿轴融合 DataFrames。当挑战是融合来自不同来源的信息或汇总数据以进行全面分析时,Pandas 提供了一篮子函数,如 concat()、append() 和 merge()。我们有责任选择符合我们需求的工具,我们将在这篇详细的阐述中简化这一选择。

在这篇引人入胜的文章中,我们的重点将放在探索以下组合 DataFrames 的方法上:

  • a.列表理解和 Pandas.concat 的奇迹

  • b. Pandas.concat 的复杂性(axis=0 和 keys)

  • c. numpy.vstack 的优雅

  • d. Pandas.DataFrame.append 的魔力

  • e. Pandas.concat 的多功能性

语法:Pandas 领域的一瞥

在这段令人惊叹的旅程中,我们将穿越 pandas 库的领域,它是实现 DataFrame 融合的函数的门户。现在让我们简要概述一下每个函数的语法,这将照亮我们的路径:

concat()

pd.concat(objs, axis=0, join='outer', keys=None, ignore_index=False)

pd.concat() 沿指定轴连接数据框或系列,并提供连接类型和索引处理选项。

append()

df1.append(df2, ignore_index=False, verify_integrity=False, sort=False)

df1.append(df2) 将 df2 的行附加到 df1,通过重置索引默认。

vstack()

numpy.vstack(tup)

numpy.vstack(tup) 垂直堆叠数组(按行),前提是它们具有相同数量的列。

示例

使用列表推导和 pandas.concat

想象一个领域,您拥有一串虚幻的 DataFrames,渴望将它们垂直和谐地统一起来。不要害怕,列表推导和 pandas.concat 的秘密将成为你的指路明灯:

import pandas as pd

# DataFrames 列表
dfs = [df1, df2, df3]

# 垂直连接 DataFrames
result = pd.concat(dfs)

print(result)

输出

    A   B
0  A0  B0
1  A1  B1
2  A2  B2
3  A3  B3
4  A4  B4
5  A5  B5

使用带有 axis=0 和 keys 的 pandas.concat

当试图编织一个与分层索引交织在一起的 DataFrames 挂毯时,带有 axis=0 和 keys 的 Pandas.concat 路径展现了其真正的辉煌:

import pandas as pd

# 上面定义的 DataFrames df1 和 df2

# 使用 keys 垂直连接 DataFrames
result = pd.concat([df1, df2], keys=['df1', 'df2'])

print(result)

输出

       A   B
df1 0  A0  B0
    1  A1  B1
    2  A2  B2
df2 3  A3  B3
    4  A4  B4
    5  A5  B5

使用 numpy.vstack

看,numpy.vstack 的本质潜伏在一个领域,随时准备唤醒垂直 DataFrame 连接的力量:

import pandas as pd
import numpy as np

# 上面定义的 DataFrames df1 和 df2

# 将 DataFrames 转换为 numpy 数组并垂直堆叠
result_array = np.vstack([df1.values, df2.values])

# 将堆叠的 numpy 数组转换回 DataFrame
result = pd.DataFrame(result_array, columns=df1.columns)

print(result)

输出

    A   B
0  A0  B0
1  A1  B1
2  A2  B2
3  A3  B3
4  A4  B4
5  A5  B5

使用 pandas.DataFrame.append

看,这是一段神秘的旅程,Pandas.DataFrame.append 的力量使 DataFrames 沿着梦想的轴线合并,协调它们的本质:

import pandas as pd

# 上面定义的 DataFrames df1 和 df2

# 将 df2 附加到 df1
result = df1.append(df2)

print(result)

输出

    A   B
0  A0  B0
1  A1  B1
2  A2  B2
3  A3  B3
4  A4  B4
5  A5  B5

使用 pandas.concat

见证 Pandas.concat() 函数的多功能性,它施展魔法,无缝地沿所选轴统一 DataFrames:

import pandas as pd

# 上面定义的 DataFrames df1 和 df2

# 垂直连接 DataFrames(默认 axis=0)
result = pd.concat([df1, df2])

print(result)

输出

    A   B
0  A0  B0
1  A1  B1
2  A2  B2
3  A3  B3
4  A4  B4
5  A5  B5

结论

Pandas 拥有丰富的函数来合并多个 DataFrame,使您能够处理一系列数据操作任务。这种理解就像是掌握了巨大宝库的钥匙,承诺提供丰富的见解。

不过,请记住,我们只是触及了表面。还有其他函数(例如 join() 和 update())的可能性,每个函数都具有独特的功能。掌握 Pandas 的旅程是一次深入数据分析核心的探险,一次充满发现的快感和理解的乐趣的旅程。


相关文章