返回
数据分析:连接、联合和重塑剖析
闲谈
2023-12-03 22:22:54
数据分析是当今数字时代不可或缺的一部分。它使我们能够从大量数据中提取有意义的信息,做出明智的决策。连接、联合和重塑是数据分析中常用的操作,它们可以帮助我们从不同来源的数据中提取有价值的信息,并将数据整理成易于分析的格式。
连接
连接是将来自不同数据源的两个或多个表组合在一起的过程。连接通常使用一个或多个公共列作为连接键,将两个表的记录匹配起来。连接操作可以分为内连接 、外连接 和交叉连接 。
- 内连接 仅选择在两个表中都存在的记录。
- 外连接 选择一个表中的所有记录,以及在另一个表中具有匹配记录的记录。
- 交叉连接 选择两个表中的所有记录,并为每个记录对创建一个新的记录。
联合
联合是将来自不同数据源的两个或多个表组合在一起的过程,但与连接不同,联合不使用连接键。联合操作可以分为左联合 、右联合 和完全联合 。
- 左联合 选择左表中的所有记录,以及在右表中具有匹配记录的记录。
- 右联合 选择右表中的所有记录,以及在左表中具有匹配记录的记录。
- 完全联合 选择两个表中的所有记录,无论它们是否具有匹配记录。
重塑
重塑是将数据从一种格式转换为另一种格式的过程。重塑操作可以分为宽表转长表 和长表转宽表 。
- 宽表转长表 将一个宽表转换为一个长表,其中每一行代表一条记录,每一列代表一个变量。
- 长表转宽表 将一个长表转换为一个宽表,其中每一行代表一个变量,每一列代表一条记录。
连接、联合和重塑是数据分析中常用的操作,它们可以帮助我们从不同来源的数据中提取有价值的信息,并将数据整理成易于分析的格式。通过灵活运用这些技巧,可以有效地提高数据分析的效率和准确性。
示例
以下是一个连接操作的示例:
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
参数来忽略索引。联合操作选择两个数据框中的所有记录,无论它们是否具有匹配记录。因此,输出数据框有五