Pandas:逆转 Pivot

Pandas:逆转 Pivot

在本文中,我们将介绍 Pandas 中的逆转 Pivot 操作。Pivot 是将表格数据中的某些列项转换为新的列,而行项变为新的行。在某些情况下,我们可能会需要逆转 Pivot 操作,从而将原本的列项转为新的行,行项变为新的列。

阅读更多:Pandas 教程

逆转单层Pivot Table

使用 pd.melt() 方法可以用来逆转单层 Pivot Table。它的使用方法是将原表格中作为列的项转换为新表格的一列。下面是一个例子:

import pandas as pd

df = pd.DataFrame({'A':['foo','foo','bar','bar'],
                   'B':['one','one','two','two'],
                   'C':[1,2,3,4]})
print(df)
Python

这将输出以下数据集:

     A    B  C
0  foo  one  1
1  foo  one  2
2  bar  two  3
3  bar  two  4
Python

接下来,我们使用 pd.melt() 将表格逆转:

df_new = pd.melt(df, id_vars=['A'], var_name='new_col', value_name='new_val')
print(df_new)
Python

这将输出以下数据集:

     A new_col  new_val
0  foo       B      one
1  foo       B      one
2  bar       B      two
3  bar       B      two
4  foo       C        1
5  foo       C        2
6  bar       C        3
7  bar       C        4
Python

在这个例子中,id_vars 参数指定要保留作为行的项。在上面的代码中,我们将 A 指定为 id_vars

逆转多层Pivot Table

使用 pd.melt() 可以逆转单层 Pivot Table。如果要逆转多层 Pivot Table,则需要通过多次转换来完成。下面是一个例子:

import pandas as pd

data = {'Date':['2010-01-01', '2010-01-01', '2010-01-02', '2010-01-02'],
        'Region':['East', 'West', 'East', 'West'],
        'Sales':[100, 200, 300, 400],
        'Expenses':[50, 70, 90, 110]}
df = pd.DataFrame(data)

pivot = df.pivot_table(values=['Sales', 'Expenses'], index='Date', columns='Region')
print(pivot)
Python

这将输出以下 Pivot Table:

           Expenses       Sales     
Region         East West  East West
Date                               
2010-01-01       50   70   100  200
2010-01-02       90  110   300  400
Python

现在我们逆转这个 Pivot Table:

melted = pd.melt(pivot.reset_index(), id_vars=['Date'], value_name='new')
melted['Region'] = melted['Region'].apply(lambda x: x[1])

new_pivot = melted.pivot_table(values='new', index='Date', columns='Region')
print(new_pivot)
Python

这将输出以下数据集:

Region      East  West
Date                 
2010-01-01   100   200
2010-01-02   300   400
Python

首先我们使用 pivot_table() 将 Pivot Table 重置为普通 DataFrame。然后使用 pd.melt() 将其逆转。在此之后,我们解析出了它的 Regionnew Columns。最后,我们将其再次转换为 Pivot Table。

总结

本文简要介绍了如何在 Pandas 中进行逆转 Pivot 操作,以及如何对多层 Pivot Table 进行逆转。使用 Pandas 数据科学工具包,您可以在 Python 中轻松执行这些操作。通过这个功能,您可以更有效地分析和处理您的数据。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册