使用多个变量将 Pandas 长格式转换为宽格式
将 Pandas 中的数据从长格式转换为宽格式可能具有挑战性,尤其是当多个变量被转换时涉及。本题探讨了一种使用pivot函数重塑数据的方法。
提供的原始数据是:
Salesman Height product price Knut 6 bat 5 Knut 6 ball 1 Knut 6 wand 3 Steve 5 pen 2
所需的宽格式是:
Salesman Height product_1 price_1 product_2 price_2 product_3 price_3 Knut 6 bat 5 ball 1 wand 3 Steve 5 pen 2 NA NA NA NA
一个Chris Albon 建议的方法涉及使用数据透视函数,如下所示:
df.pivot(index='Salesman', columns='product', values='price')
此方法创建一个多级索引,其中 Salesman 和 Product 列分别作为行索引和列索引。价格列成为值。
生成的数据框将是:
product bat ball wand Salesman Knut 5 1 3 Steve 2 NaN NaN
要获得所需的格式,需要额外的步骤来堆叠列并将产品和价格值提取到单独的列。这可以使用 stack 和 reset_index 函数来实现,如下所示:
df.pivot(index='Salesman', columns='product', values='price') \ .stack().reset_index() \ .rename(columns={'level_1':'product', 0:'price'})
最终结果将是所需的宽格式。
以上是如何使用 Pivot 函数将 Pandas 数据从长格式重塑为具有多个变量的宽格式?的详细内容。更多信息请关注PHP中文网其他相关文章!