我有一个Pandas Dataframe,我想对一些列进行分组以构建更高级别的列:
示例:我有
VisionDeviceComponent
我想要
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
谢谢您的帮助...
答案 0 :(得分:4)
创建一个字典来定义您的映射并使用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
答案 1 :(得分:2)
groupby
/ concat
入侵m = {'A': 'AB', 'B': 'AB', 'C': 'CD', 'D': 'CD'}
pd.concat(dict((*df.groupby(m, 1),)), axis=1)
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