跳到主要内容

Pandas 多维数据

在数据分析中,我们经常需要处理多维数据。Pandas 提供了强大的工具来处理这些数据,包括数据重塑、堆叠、解堆叠等操作。本文将逐步介绍这些概念,并通过实际案例帮助你掌握它们的应用。

什么是多维数据?

多维数据是指具有多个维度的数据集。例如,一个包含时间、地点和产品销售额的数据集就是一个三维数据。Pandas 提供了 MultiIndexDataFrame 等数据结构来处理这些多维数据。

创建多维数据

首先,我们来看如何创建一个多维数据集。我们可以使用 MultiIndex 来创建一个具有多个索引的 DataFrame

python
import pandas as pd
import numpy as np

# 创建多层索引
index = pd.MultiIndex.from_tuples([('A', 'X'), ('A', 'Y'), ('B', 'X'), ('B', 'Y')], names=['Group', 'Subgroup'])

# 创建DataFrame
df = pd.DataFrame({'Value': [1, 2, 3, 4]}, index=index)
print(df)

输出:

              Value
Group Subgroup
A X 1
Y 2
B X 3
Y 4

数据重塑

堆叠(Stack)

堆叠操作将列转换为行,从而将 DataFrame 从宽格式转换为长格式。

python
# 创建一个示例DataFrame
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
}, index=['X', 'Y', 'Z'])

# 堆叠操作
stacked = df.stack()
print(stacked)

输出:

X  A    1
B 4
C 7
Y A 2
B 5
C 8
Z A 3
B 6
C 9
dtype: int64

解堆叠(Unstack)

解堆叠操作是堆叠的逆操作,它将行转换回列。

python
# 解堆叠操作
unstacked = stacked.unstack()
print(unstacked)

输出:

   A  B  C
X 1 4 7
Y 2 5 8
Z 3 6 9

实际案例

假设我们有一个包含不同城市、不同年份的销售数据的数据集。我们希望将这些数据重塑为适合分析的形式。

python
# 创建示例数据
data = {
'City': ['New York', 'New York', 'Los Angeles', 'Los Angeles'],
'Year': [2020, 2021, 2020, 2021],
'Sales': [100, 150, 200, 250]
}

df = pd.DataFrame(data)

# 使用pivot_table进行数据重塑
pivot_df = df.pivot_table(index='City', columns='Year', values='Sales')
print(pivot_df)

输出:

Year         2020  2021
City
Los Angeles 200 250
New York 100 150

总结

通过本文,我们学习了如何使用 Pandas 处理多维数据。我们介绍了如何创建多维数据、进行数据重塑(堆叠和解堆叠),并通过实际案例展示了这些操作的应用。

提示

提示: 在处理多维数据时,MultiIndexpivot_table 是非常有用的工具。熟练掌握它们可以大大提高你的数据分析效率。

附加资源

练习

  1. 创建一个包含多层索引的 DataFrame,并尝试进行堆叠和解堆叠操作。
  2. 使用 pivot_table 对一个包含多个维度的数据集进行重塑,并分析结果。

通过完成这些练习,你将更好地掌握 Pandas 中的多维数据处理技巧。