python - 在多索引数据框熊猫中添加两列
问题描述
我正在使用熊猫 1.14。
我有如下所示的数据框:
col1 col2 ....
A B C D E
11 1 1 1 1 2 3
3 3 4
30 3 10 2
... ...
22 3 4 5 6 3 1
df.index
输出
MultiIndex([('11', '1', '1', '1', '1'),
('11', '1', '1', '1', '3'),
('11', '1', '1', '30', '3'),
...
('22', '3', '4', '5', '6')],
names=["A","B","C", "D", "E"], length=10000)
df.columns
输出
Index(["col1", "col2", ...], dtype="object")
我想做的是添加两列并除以2。在单个索引数据框中我通常会做
df["new"] = (df["col1"] + df["col2"])/2
如何使用多索引数据框做到这一点?
我想要的数据框应该是这样的
col1 col2 new
A B C D E
11 1 1 1 1 2 3 2.5
3 3 4 3.5
30 3 10 2 6
... ...
22 3 4 5 6 3 1 2
提前致谢!
解决方案
您的解决方案也应该适用于 MultiIndexes
In [14]: df = pd.DataFrame([[2,3],[3,4],[10,2],[3,1]], columns=['col1', 'col2'], index=index)
In [15]: df
Out[15]:
col1 col2
A B C D E
11 1 1 1 1 2 3
3 3 4
30 3 10 2
22 3 4 5 6 3 1
In [16]: df['new'] = (df['col1'] + df['col2'])/2
In [17]: df
Out[17]:
col1 col2 new
A B C D E
11 1 1 1 1 2 3 2.5
3 3 4 3.5
30 3 10 2 6.0
22 3 4 5 6 3 1 2.0
推荐阅读
- reactjs - 测试 React 组件时忽略 HOC
- jquery - HighMaps 未定义的 ZoomTo()
- android - 以编程方式为旧 API 创建形状背景
- c# - ListView 未添加项目
- http - 使用单位 LazUTF8 时 TIdURI.URLDecode 的错误结果
- chatbot - 使用botium box从bot获取变量输出时测试用例失败
- networking - 是否需要在 SPF 记录本身中添加相同的域名?
- opengl - 无法创建超过 8 个渲染缓冲区的 FBO
- html - 尽管使用了@media 查询,但文本拒绝调整大小
- python - 关于优化熊猫脚本删除for循环的问题(iterrows,zip,...)