python - Pandas Dataframe,如何在 Python 中将列组合在一起
问题描述
我有一个熊猫数据框,我想对一些列进行分组以构建更高级别的列:
例子:我有
Index A B C D
1 0.25 0.3 0.25 0.66
2 0.25 0.3 0.25 0.66
3 0.25 0.3 0.25 0.66
而且我要
Index AB || CD
Subindex A | B || C | D
1 0.25 | 0.3 || 0.25 | 0.66
2 0.25 | 0.3 || 0.25 | 0.66
3 0.25 | 0.3 || 0.25 | 0.66
谢谢您的帮助...
解决方案
创建一个字典来定义您的映射并使用pd.MultiIndex.from_tuples
. 如果需要,您还可以指定 names=['level_0', 'level_1']
添加名称。
import pandas as pd
d = {'A': 'AB', 'B': 'AB', 'C': 'CD', 'D': 'CD'}
df.columns = pd.MultiIndex.from_tuples([*zip(map(d.get, df), df)])
# Equivalently
# df.columns = pd.MultiIndex.from_tuples([(d[col], col) for col in df.columns])
输出:
AB CD
A B C D
Index
1 0.25 0.3 0.25 0.66
2 0.25 0.3 0.25 0.66
3 0.25 0.3 0.25 0.66
推荐阅读
- python - 如何从我抓取的网页中删除空格?
- react-native - 如何模拟从 npm 模块导入的类
- delphi - Delphi 10.3.2 - 将项目添加到版本控制 - 导入到 SVN 崩溃 Delphi IDE
- r - R Windows:安装包“rvest”(和其他几个包)时出错
- javascript - 如何处理nodejs应用程序中的“ReferenceError:require is not defined”?
- dask - 如何有效地加入多个 dask 数据帧
- sql - Oracle APEX - 将隐藏的 SQL 查询下载到 CSV
- android - 具有网格布局延伸的回收站视图中的图像
- swift - 将 macos UI 冻结 30 秒——冥想
- apache-spark - Spark 结构化流式打印每批次每执行器的偏移量