相关疑难解决方法(0)

Pandas - 如何在列中展平分层索引

我有一个数据框,在第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)

我想扁平它,所以它看起来像这样(名字不重要 …

python dataframe pandas

266
推荐指数
12
解决办法
17万
查看次数

扁平化多指数柱的简洁方法

在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时,有没有办法返回扁平索引而不是多索引?

我需要将列展平以保存到文本文件,然后由不处理多索引列的其他程序读取该文件.

pandas pandas-groupby

7
推荐指数
4
解决办法
3982
查看次数

标签 统计

pandas ×2

dataframe ×1

pandas-groupby ×1

python ×1