Pandas DataFrame Pivot 方法

Beginner

介绍

在本实验中,我们将学习如何在 Python 的 Pandas 库中使用 pivot() 方法。pivot() 方法允许我们通过改变索引和列值的组织方式来转换或重塑 DataFrame。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到 Notebook 标签页,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟,直到 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,随时可以向 Labby 寻求帮助。实验结束后请提供反馈,我们将及时为你解决问题。

导入 pandas 并创建 DataFrame

  • 首先导入 pandas 库,并使用 pd.DataFrame() 函数创建一个 DataFrame。
import pandas as pd

data = {
  'crop': ['Rice', 'Wheat', 'Rice', 'Wheat', 'Rice', 'Wheat'],
  'state': ['karnataka', 'karnataka', 'Tamilnadu', 'Tamilnadu', 'Kerala', 'Kerala'],
  'Temperature': [29, 29, 31, 31, 25, 25],
  'Humidity': [50, 50, 62, 62, 45, 45]
}

df = pd.DataFrame(data)
print(df)
  • 这将创建一个包含 'crop'、'state'、'Temperature' 和 'Humidity' 列的 DataFrame。

使用 pivot() 方法重塑 DataFrame

  • 为了重塑 DataFrame,我们可以使用 pivot() 方法并指定索引和列名。
df_pivot = df.pivot(index='crop', columns='state')
print(df_pivot)
  • pivot() 方法将重新排列 DataFrame,使用 'crop' 作为新的索引,'state' 作为新的列。生成的 DataFrame 将为每个 'crop' 和 'state' 的组合提供 'Temperature' 和 'Humidity' 列。

指定 values 参数以选择特定列

  • 如果我们只想在重塑后的 DataFrame 中包含特定列,可以在 pivot() 方法中使用 values 参数。
df_pivot_specific = df.pivot(index='crop', columns='state', values='Temperature')
print(df_pivot_specific)
  • 生成的 DataFrame 将仅包含每个 'crop' 和 'state' 组合的 'Temperature' 列。

处理 DataFrame 中的重复数据

  • 如果 DataFrame 中包含重复数据,pivot() 方法会抛出 ValueError。在这种情况下,我们需要确保在重塑之前 DataFrame 中没有重复的条目。
df_duplicated = pd.DataFrame({'crop': ['Rice', 'Rice', 'Wheat', 'Wheat', 'Rice', 'Wheat'],
                              'state': ['karnataka', 'karnataka', 'Tamilnadu', 'Tamilnadu', 'Kerala', 'Kerala'],
                              'Temperature': [29, 29, 31, 31, 25, 25],
                              'Humidity': [50, 50, 62, 62, 45, 45]})

df_duplicated_pivot = df_duplicated.pivot(index='crop', columns='state', values='Temperature')
print(df_duplicated_pivot)
  • 在这个例子中,DataFrame 包含 'crop' 和 'state' 组合的重复条目,这会导致在使用 pivot() 方法时抛出 ValueError

总结

本实验介绍了 Python Pandas 库中 pivot() 方法的基本用法。pivot() 方法允许我们通过改变索引和列值的组织方式来转换或重塑 DataFrame。我们学习了如何重塑 DataFrame、选择特定列以及处理重复数据。pivot() 方法是数据操作和分析的强大工具。