如何使用 Pivot 函数将 Pandas 数据从长格式重塑为具有多个变量的宽格式?

DDD
发布: 2024-11-02 17:14:02
原创
290 人浏览过

How to Reshape Pandas Data from Long to Wide Format with Multiple Variables Using the Pivot Function?

使用多个变量将 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!