我有一个现有的数据框。
l1 | a b c | d e f
--------------------------------
0 | 1 1 1 | 1 1 1
1 | 1 1 1 | 1 1 1
2 | 1 1 1 | 1 1 1
还有这本字典。
{
"a": "dog",
"b": "dog",
"c": "dog",
"d": "fish",
"e": "fish",
"f": "fish",
}
创建第二个列级别将现有列与其字典中的类别相匹配的最简单方法是什么?
真正的列和字典要大得多,组织性也差得多。 🙃
结果应该是这样的。
l2 | dog | fish
l1 | a b c | d e f
--------------------------------
0 | 1 1 1 | 1 1 1
1 | 1 1 1 | 1 1 1
2 | 1 1 1 | 1 1 1
最佳答案
为第一个系列添加一个额外的映射,然后使用 pd.MultiIndex.from_tuples
:
d.update({'l1': 'l2'})
df.columns = pd.MultiIndex.from_tuples([(d[k], k) for k in df.columns])
print(df)
l2 dog fish
l1 a b c d e f
0 0 1 1 1 1 1 1
1 1 1 1 1 1 1 1
2 2 1 1 1 1 1 1
关于python - 如何通过匹配字典值将二级列标题/索引添加到数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53861225/