精慕HU
groupby允许您沿具有相同 level_values 的 MultiIndex 级别拆分 DataFrame。我们将使用DataFrame.xs删除分组索引级别,只留下您关心的列。单独的 DataFrame 存储在字典中,由原始列 MultiIndex 的唯一级别 1 值作为键。样本数据import pandas as pdimport numpy as npnp.random.seed(123)df = pd.DataFrame(np.random.randint(1, 10, (4, 9)), columns=pd.MultiIndex.from_product([['df1', 'df2', 'df3'], ['compass', 'gyro', 'accel']]))# df1 df2 df3 # compass gyro accel compass gyro accel compass gyro accel#0 3 3 7 2 4 7 2 1 2#1 1 1 4 5 1 1 5 2 8#2 4 3 5 8 3 5 9 1 8#3 4 5 7 2 6 7 3 2 9代码d = {idx: gp.xs(idx, level=1, axis=1) for idx,gp in df.groupby(level=1, axis=1)}d['gyro']# df1 df2 df3#0 3 4 1#1 1 1 2#2 3 3 1#3 5 6 2由于这样的拆分很容易获得,groupby您甚至可能不需要存储单独的 DataFrame;您可以使用GroupBy.apply.