本篇介绍 pandas 数据重塑的几个有用变换。假设我们有学生语数外考试的成绩数据,大家常见的是这种格式:
如果数据放在数据库中,下面的格式比较符合数据库范式:
现在,任务来了。要实现由图一向图二的变换,传统的 Excel 功能不容易实现,有了 Power Query 之后,可以使用 Power Query 的逆透视功能来说实现。
如果要实现由图二向图一的格式的变换,比较简单的方法是利用数据透视表。因为数据中有数字,所以相对来说还比较简单。因为本篇目的是介绍 pandas 的实现方法,对 Excel 中如何实现数据格式的转换就不做展开。
我将图 2 的数据放在 Sheet3 中,利用 read_excel() 方法读取数据:
import pandas as pd
df = pd.read_excel('data_shaping_sample_data.xlsx', sheet_name='Sheet3')
此时显示 df 如下:
将 df 调用 pivot() 方法进行透视:
df_pivot = df.pivot(index='Name', columns='Subject', values='Score')
df_pivot
对于逆透视呢,pandas 也提供了很好的支持,以下代码演示了使用方法: