我有一个数据框,在第1轴(列)中有一个分层索引(来自一个groupby.agg操作):
USAF WBAN year month day s_PC s_CL s_CD s_CNT tempf
sum sum sum sum amax amin
0 702730 26451 1993 1 1 1 0 12 13 30.92 24.98
1 702730 26451 1993 1 2 0 0 13 13 32.00 24.98
2 702730 26451 1993 1 3 1 10 2 13 23.00 6.98
3 702730 26451 1993 1 4 1 0 12 13 10.04 3.92
4 702730 26451 1993 1 5 3 0 10 13 19.94 10.94
Run Code Online (Sandbox Code Playgroud)
我想扁平它,所以它看起来像这样(名字不重要 …
在groupby-aggregate中使用多个函数会产生一个多索引,然后我想要展平.
例:
df = pd.DataFrame(
{'A': [1,1,1,2,2,2,3,3,3],
'B': np.random.random(9),
'C': np.random.random(9)}
)
out = df.groupby('A').agg({'B': [np.mean, np.std], 'C': np.median})
# example output
B C
mean std median
A
1 0.791846 0.091657 0.394167
2 0.156290 0.202142 0.453871
3 0.482282 0.382391 0.892514
Run Code Online (Sandbox Code Playgroud)
目前,我是这样手动完成的
out.columns = ['B_mean', 'B_std', 'C_median']
Run Code Online (Sandbox Code Playgroud)
这给了我想要的结果
B_mean B_std C_median
A
1 0.791846 0.091657 0.394167
2 0.156290 0.202142 0.453871
3 0.482282 0.382391 0.892514
Run Code Online (Sandbox Code Playgroud)
但是我正在寻找一种自动化这个过程的方法,因为这是单调的,耗时的,并且允许我在重命名列时进行拼写错误.
在进行groupby-aggregate时,有没有办法返回扁平索引而不是多索引?
我需要将列展平以保存到文本文件,然后由不处理多索引列的其他程序读取该文件.