如何转换此数据框并对单元格应用过滤器?
how do I transform this dataframe and apply a filter to the cells?
两天内第三例!
我有以下数据框片段(其中列最初是多索引的,但在将 df 保存为 CSV 并读回后我丢失了索引,第二级实际上是一行):
已编辑:
model model_a model_a model_b model_b
NaN b pvalue b pvalue
predictor NaN NaN NaN NaN
aches 0.6991801946 0.33372434223 0.3523114106 0.0359096002
cough 0.7164202952 0.00796337569 0.7405228672 0.0473180859
我的用例是现在将预测变量 ache
和 cough
转置为列,将索引列的顶层转置为行,这样如果 pvalue
是 <= 0.05,该单元格应为空,否则 b
的值应在该单元格中。我假设 pvalue
的计算将在 lambda 函数中进行,但我可能错了!
因此,所需的数据帧将是:
model aches cough
model_a NaN 0.7164202952
model_b 0.3523114106 0.7405228672
老实说,我完全不知道该怎么做,更不用说如何开始了。如有任何帮助,我们将不胜感激。
尝试 pd.IndexSlice
和 where
out = df.loc[:,pd.IndexSlice[:,'b']].where(df.loc[:,pd.IndexSlice[:,'pvalue']].values<0.05).T.reset_index(level=1,drop=True)
aches cough
ma NaN 0.716420
mb 0.352311 0.740523
两天内第三例!
我有以下数据框片段(其中列最初是多索引的,但在将 df 保存为 CSV 并读回后我丢失了索引,第二级实际上是一行):
已编辑:
model model_a model_a model_b model_b
NaN b pvalue b pvalue
predictor NaN NaN NaN NaN
aches 0.6991801946 0.33372434223 0.3523114106 0.0359096002
cough 0.7164202952 0.00796337569 0.7405228672 0.0473180859
我的用例是现在将预测变量 ache
和 cough
转置为列,将索引列的顶层转置为行,这样如果 pvalue
是 <= 0.05,该单元格应为空,否则 b
的值应在该单元格中。我假设 pvalue
的计算将在 lambda 函数中进行,但我可能错了!
因此,所需的数据帧将是:
model aches cough
model_a NaN 0.7164202952
model_b 0.3523114106 0.7405228672
老实说,我完全不知道该怎么做,更不用说如何开始了。如有任何帮助,我们将不胜感激。
尝试 pd.IndexSlice
和 where
out = df.loc[:,pd.IndexSlice[:,'b']].where(df.loc[:,pd.IndexSlice[:,'pvalue']].values<0.05).T.reset_index(level=1,drop=True)
aches cough
ma NaN 0.716420
mb 0.352311 0.740523