我有一个df:
我想创建两个不同的数据框,通过对级别为0的索引(CU)进行分组,获取列值的平均值:
df1:(379-H和625-H)
df2:(其余部分)
我可以通过分组级别1来获取所有人的平均值:
CU Parameters 1 2 3
379-H Output Energy, (Wh/h) 0.045 0.055 0.042
349-J Output Energy, (Wh/h) 0.001 0.003 0
625-H Output Energy, (Wh/h) 2.695 1.224 1.272
626-F Output Energy, (Wh/h) 1.381 1.494 1.3
我想创建两个不同的数据框,通过对级别为0的索引(CU)进行分组,获取列值的平均值:
df1:(379-H和625-H)
Parameters 1 2 3
Output Energy, (Wh/h) 1.37 0.63 0.657
df2:(其余部分)
Parameters 1 2 3
Output Energy, (Wh/h) 0.69 0.74 0.65
我可以通过分组级别1来获取所有人的平均值:
df = df.apply(pd.to_numeric, errors='coerce').dropna(how='all').groupby(level=1).mean()
但是我怎样按照 0 级别对它们进行分组呢?
解决方案:
lightsonly = ["379-H", "625-H"]
df = df.apply(pd.to_numeric, errors='coerce').dropna(how='all')
mask = df.index.get_level_values(0).isin(lightsonly)
df1 = df[mask].groupby(level=1).mean()
df2 = df[~mask].groupby(level=1).mean()
df1 = df[mask].groupby(level=1).mean()
和df1 = df[mask].mean(level=1)
是相同的。祝你有美好的一天! - jezrael