返回

数据分析:连接、联合和重塑剖析

闲谈

数据分析是当今数字时代不可或缺的一部分。它使我们能够从大量数据中提取有意义的信息,做出明智的决策。连接、联合和重塑是数据分析中常用的操作,它们可以帮助我们从不同来源的数据中提取有价值的信息,并将数据整理成易于分析的格式。

连接

连接是将来自不同数据源的两个或多个表组合在一起的过程。连接通常使用一个或多个公共列作为连接键,将两个表的记录匹配起来。连接操作可以分为内连接外连接交叉连接

  • 内连接 仅选择在两个表中都存在的记录。
  • 外连接 选择一个表中的所有记录,以及在另一个表中具有匹配记录的记录。
  • 交叉连接 选择两个表中的所有记录,并为每个记录对创建一个新的记录。

联合

联合是将来自不同数据源的两个或多个表组合在一起的过程,但与连接不同,联合不使用连接键。联合操作可以分为左联合右联合完全联合

  • 左联合 选择左表中的所有记录,以及在右表中具有匹配记录的记录。
  • 右联合 选择右表中的所有记录,以及在左表中具有匹配记录的记录。
  • 完全联合 选择两个表中的所有记录,无论它们是否具有匹配记录。

重塑

重塑是将数据从一种格式转换为另一种格式的过程。重塑操作可以分为宽表转长表长表转宽表

  • 宽表转长表 将一个宽表转换为一个长表,其中每一行代表一条记录,每一列代表一个变量。
  • 长表转宽表 将一个长表转换为一个宽表,其中每一行代表一个变量,每一列代表一条记录。

连接、联合和重塑是数据分析中常用的操作,它们可以帮助我们从不同来源的数据中提取有价值的信息,并将数据整理成易于分析的格式。通过灵活运用这些技巧,可以有效地提高数据分析的效率和准确性。

示例

以下是一个连接操作的示例:

import pandas as pd

df1 = pd.DataFrame({
    "name": ["John", "Mary", "Bob"],
    "age": [20, 25, 30]
})

df2 = pd.DataFrame({
    "name": ["John", "Bob"],
    "city": ["New York", "London"]
})

df3 = pd.merge(df1, df2, on="name")

print(df3)

输出:

   name  age city
0  John   20  New York
1  Bob   30  London

在这个示例中,我们使用连接操作将两个数据框组合在一起。连接键是列“name”。连接操作仅选择在两个数据框中都存在的记录。因此,输出数据框只有两行,分别对应于John和Bob。

以下是一个联合操作的示例:

import pandas as pd

df1 = pd.DataFrame({
    "name": ["John", "Mary", "Bob"],
    "age": [20, 25, 30]
})

df2 = pd.DataFrame({
    "name": ["John", "Bob"],
    "city": ["New York", "London"]
})

df3 = pd.concat([df1, df2], ignore_index=True)

print(df3)

输出:

   name  age city
0  John   20  NaN
1  Mary   25  NaN
2  Bob   30  NaN
3  John   NaN  New York
4  Bob   NaN  London

在这个示例中,我们使用联合操作将两个数据框组合在一起。由于两个数据框没有公共列,因此我们使用ignore_index=True参数来忽略索引。联合操作选择两个数据框中的所有记录,无论它们是否具有匹配记录。因此,输出数据框有五