我有以下 pandas multiindex:
import pandas as pd
from collections import defaultdict
pd_df = defaultdict(list)
categories = ['cat 1', 'cat 2']
sig_bkgd = ['signal', 'bkgd']
masses = [i for i in range(10, 20)]
for m in masses:
for cat in categories:
for sb in sig_bkgd:
pd_df[(cat, sb)].append(np.random.randint(100))
pd.DataFrame(pd_df)
我想将质量数组设置为索引列。
我尝试了什么:
for m in masses:
for cat in categories:
for sb in sig_bkgd:
pd_df[(cat, sb)].append(np.random.randint(100))
pd.DataFrame(pd_df).set_index("Mass")
...生成的数据框丢失了多索引列:
我可以添加两个质量列,但它们是相同的,所以它是多余的,我必须将它们都设置为索引:
for m in masses:
for cat in categories:
pd_df[(cat, 'mass')].append(m)
for sb in sig_bkgd:
pd_df[(cat, sb)].append(np.random.randint(100))
pd.DataFrame(pd_df).set_index([('cat 1', 'mass'), ('cat 2', 'mass')])
我想要的是一个看起来像第一张图片的数据框,但只是作为索引列的质量数组。任何帮助将不胜感激!