Pandas中如何为透视表重命名列名

Pandas中如何为透视表重命名列名

在本文中,我们将介绍如何使用Pandas为透视表重命名列名。当你创建透视表时,它会自动为你命名列名。虽然这些默认的列名对于某些情况非常有用,但在其他情况下,更改它们可能会更加直观和实用。

阅读更多:Pandas 教程

创建透视表

首先让我们先来创建透视表。我们将使用一个包含销售数据的DataFrame。它包含以下列:国家,城市,性别,产品和销售额。

import pandas as pd

sales_data = {'国家': ['中国', '中国', '美国', '美国', '德国', '德国'],
              '城市': ['北京', '上海', '纽约', '洛杉矶', '柏林', '慕尼黑'],
              '性别': ['男', '女', '男', '女', '男', '女'],
              '产品': ['衣服', '鞋子', '衣服', '鞋子', '衣服', '鞋子'],
              '销售额': [100, 200, 300, 400, 500, 600]}

df = pd.DataFrame(sales_data)

pivot_table = pd.pivot_table(df, values='销售额', index=['国家', '城市'], columns=['性别', '产品'], aggfunc=sum)

print(pivot_table)

输出的结果如下:

性别        女          男      
产品     鞋子   衣服   鞋子   衣服
国家 城市                    
中国 上海  200  100  NaN  NaN
    北京  NaN  NaN  100  200
德国 慕尼黑  600  500  NaN  NaN
    柏林  NaN  NaN  400  300
美国 洛杉矶  400  NaN  NaN  300
    纽约  NaN  300  200  NaN

我们现在有一个透视表,它显示了销售额按国家和城市进行了分组,并按性别和产品进行了拆分。

重命名列名

为了更好地理解该透视表,我们可以为其列名添加更具描述性的标签。首先让我们展示如何为所有列重命名:

pivot_table.columns = ['Female Shoes', 'Female Clothes', 'Male Shoes', 'Male Clothes']

print(pivot_table)

输出结果如下:

     Female Shoes  Female Clothes  Male Shoes  Male Clothes
国家 城市                                                    
中国 上海         200             100         NaN           NaN
    北京         NaN             NaN         100           200
德国 慕尼黑        600             500         NaN           NaN
    柏林         NaN             NaN         400           300
美国 洛杉矶        400             NaN         NaN           300
    纽约         NaN             300         200           NaN

现在,每个列名都具有更明确的标签,使我们更容易理解透视表的内容。

更改单个列名

除了重命名所有列,我们还可以选择更改适合我们需要的单个列的名称。

让我们将“Female Shoes”列重命名为“Women’s Shoes”:

pivot_table.rename(columns={'Female Shoes': "Women's Shoes"}, inplace=True)

print(pivot_table)

输出结果如下:

     Women's Shoes  Female Clothes  Male Shoes  Male Clothes
国家 城市                                                    
中国 上海            200             100         NaN           NaN
    北京            NaN             NaN         100           200
德国 慕尼黑           600             500         NaN           NaN
    柏林            NaN             NaN         400           300
美国 洛杉矶           400             NaN         NaN           300
    纽约            NaN             300         200           NaN

现在,只有“Female Shoes”列被重命名为“Women’s Shoes”。

我们还可以重命名其他列。例如,将“Male Shoes”列重命名为“Men’s Shoes”:

pivot_table.rename(columns={'Male Shoes': "Men's Shoes"}, inplace=True)

print(pivot_table)

输出结果如下:

     Women's Shoes  Female Clothes  Men's Shoes  Male Clothes
国家 城市                                                      
中国 上海            200             100          NaN           NaN
    北京            NaN             NaN         100           200
德国 慕尼黑           600             500          NaN           NaN
    柏林            NaN             NaN         400           300
美国 洛杉矶          400             NaN          NaN           300
    纽约            NaN             300         200           NaN

现在,我们已经成功地为透视表重命名了列名。

总结

在Pandas中,为透视表重命名列名非常简单。我们可以使用pivot_table.columns,它允许我们一次性更改所有列名;还可以使用pivot_table.rename,它允许我们选择单个列名进行更改,并在一个语句中进行多个更改。通过为透视表添加更多描述性的列名,我们可以更好地理解和分析它的数据。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程