首页  >  文章  >  后端开发  >  如何在 Pandas 中将数据从长格式重塑为宽格式:分步指南

如何在 Pandas 中将数据从长格式重塑为宽格式:分步指南

DDD
DDD原创
2024-10-28 05:26:30841浏览

How to Reshape Data from Long to Wide Format in Pandas: A Step-by-Step Guide

在 Pandas 中将数据从长变为宽:综合指南

许多数据集最初以长格式存储,其中每一行代表一个单个观察值和多个变量列为列。然而,通常有必要将数据重塑为宽格式,其中每一行对应于两个或多个变量值的唯一组合。

问题:将数据从长格式转换为宽格式在 Pandas 中格式化可能是一项繁琐的任务,特别是在使用熔化/堆叠/取消堆叠方法时。例如,考虑以下长格式数据框:

<code class="python">import pandas as pd

data = pd.DataFrame({
    'Salesman': ['Knut', 'Knut', 'Knut', 'Steve'],
    'Height': [6, 6, 6, 5],
    'product': ['bat', 'ball', 'wand', 'pen'],
    'price': [5, 1, 3, 2]
})</code>

重塑为宽格式:

要将数据重塑为宽格式,我们可以利用 Chris Albon 的解决方案:

创建长数据框:

<code class="python">raw_data = {
    'patient': [1, 1, 1, 2, 2],
    'obs': [1, 2, 3, 1, 2],
    'treatment': [0, 1, 0, 1, 0],
    'score': [6252, 24243, 2345, 2342, 23525]
}

df = pd.DataFrame(raw_data, columns=['patient', 'obs', 'treatment', 'score'])</code>

重塑为宽:

<code class="python">df.pivot(index='patient', columns='obs', values='score')</code>

这将生成所需的宽格式数据框:

<code class="python">obs           1        2       3
patient
1        6252.0  24243.0  2345.0
2        2342.0  23525.0     NaN</code>

以上是如何在 Pandas 中将数据从长格式重塑为宽格式:分步指南的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn