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
,它允许我们选择单个列名进行更改,并在一个语句中进行多个更改。通过为透视表添加更多描述性的列名,我们可以更好地理解和分析它的数据。