python - 在 pandas pivot_table 函数中重新排序数据
问题描述
我有一个示例数据框
region headquarter sales base %growth month_year
X Los Angeles 1000 2000 30 202101
X Florida City 2000 2000 20 202101
X Los Angeles 5000 6000 70 202001
X Florida City 4000 4500 45 202001
我正在尝试使用
data = data.pivot_table(columns=['month_year'], values=['sales', 'base', '%growth'], index=['region', 'headquarter'])
print(data)
> %growth base sales
| | 202001 202101 202001 202101 202001 202101
-----------------------------------------------------------------------
region | headquarter |
x | Los Angeles | 70 30 6000 2000 5000 1000
| Florida City | 45 20 4000 2000 4500 2000
这些值不是我在上面的片段中提到的顺序。
如何将我的数据重新构造为(通过重复行标签)
> 202001 202101
Sales base %growth Sales base %growth
region headquarter
X Los Angeles 5000 6000 70 1000 2000 30
X Florida City 4500 4000 45 2000 2000 20
解决方案
DataFrame.swaplevel
与 一起使用DataFrame.reindex
:
mux = pd.MultiIndex.from_product([data['month_year'].unique(), ['Sales','base','%growth']])
data = data.pivot_table(columns=['month_year'],
values=['Sales', 'base', '%growth'],
index=['headquarter']).swaplevel(1, 0, axis=1).reindex(mux, axis=1)
print(data)
202101 202001
Sales base %growth Sales base %growth
headquarter
Florida City 2000 2000 20 4000 4500 45
Los Angeles 1000 2000 30 5000 6000 70
编辑:
mux = pd.MultiIndex.from_product([data['month_year'].unique(), ['sales','base','%growth']])
data = data.pivot_table(columns=['month_year'],
values=['sales', 'base', '%growth'],
index=['region', 'headquarter']).swaplevel(1, 0, axis=1).reindex(mux, axis=1)
print (data)
202101 202001
sales base %growth sales base %growth
region headquarter
X Florida City 2000 2000 20 4000 4500 45
Los Angeles 1000 2000 30 5000 6000 70
推荐阅读
- qt - 是否有可以嵌入到应用程序中的 vscode QT 小部件
- grep - grep -o search 在第二个表达式的第一个实例处停止,而不是最后一个?贪婪的?
- java - Spring应用程序没有在MySQL上创建表
- sql - 获取无效数字,值“_”,位置 2,类型:运行选择查询时的整数
- c# - 在 C# 中使用正则表达式查找 3 个或更多空格
- html - 模仿 Bootstrap 的网页导航栏(使用 Angular)
- reactjs - 避免使用 react hooks 重新渲染
- ms-access - 在 Microsoft Access 表单中添加记录而不显示/编辑其他记录
- javascript - 将标记添加到 jQuery 插件内的 Google 地图
- azure-eventgrid - Azure 事件网格 - 不匹配事件的日志