python - 从多索引熊猫数据框创建索引
问题描述
我有一个数据框
0 1
A B A B
1 4 6 5 6
2 4 8 15 3
3 8 10 10 2
我想创建一个索引,因此所有列都除以 A 列的总和,即它们的透视级别 0 即 0 或 1
所以
0=16
1=30
所以输出是
0 1
A B A B
1 4/16 6/16 5/30 6/30
2 4/16 8/16 15/30 3/30
3 8 /16 10/16 10/30 2/30
到目前为止我有
df_in.divide(df_in.iloc[:, df_in.columns.get_level_values(1)=='A'].sum(axis=0),level=0,axis=1)
但它不工作
解决方案
用于DataFrame.xs
选择级别A
并sum
传递给DataFrame.div
:
df = df.div(df.xs('A', axis=1, level=1).sum(), axis=1, level=0)
print (df)
0 1
A B A B
1 0.25 0.375 0.166667 0.200000
2 0.25 0.500 0.500000 0.100000
3 0.50 0.625 0.333333 0.066667
推荐阅读
- d3.js - 显示不同时区的数据
- python-3.x - 如何在 python3.6 中的 AWS Lambda 中存储和访问 microsoft office365 帐户令牌
- javascript - 如何将弹出窗口移近按钮?
- c - 打印第二个字符串会导致第一个字符串在 C 中重复自身
- java - Springboot 2.2.1:NoSuchMethodError:org.springframework.web.servlet.DispatcherServlet.setEnableLoggingRequestDetails(z)V
- sql - SQL查询与日期时间一起查找访客
- r - 你如何序列化一个 ggplot2 对象?
- java - 没有得到正确的 Firebase 字符串 Android
- azure - 在 Azure WebApp 中使用环境变量引用时如何解决机密
- python - 如何更改现有 conda 虚拟环境的 Python 版本?