基于内层的Concat多索引数据

Concat multi-index data based on inner level

我有一个如下形式的多索引数据框():

key  nm    c0    c1   c2   c3  
bar one -0.42  0.56  0.27 -1.08
    two -0.67  0.11 -1.47  0.52
baz one  0.40  0.57 -1.71 -1.03
    two -0.37 -1.15 -1.34  0.84

我想根据内部级别索引连接 df 中的数字,即 nm 由 \n 分隔(假设数字表示为字符串)并删除它level nm ;像下面这样:

key      c0                 c1           c2            c3  
bar  -0.42\n-0.67    0.56\n0.11     0.27\n-1.47   -1.08\n0.52
baz   0.40\n-0.37    0.57\n-1.15    -1.71\n-1.34  -1.03\n0.84

请指导如何实现。

您可以 groupby 在“键”上并使用“\n”加入。注意。您首先需要将数据转换为字符串:

df.astype(str).groupby(level=0).agg('\n'.join)

输出:

               c0           c1            c2           c3
key                                                      
bar  -0.42\n-0.67   0.56\n0.11   0.27\n-1.47  -1.08\n0.52
baz    0.4\n-0.37  0.57\n-1.15  -1.71\n-1.34  -1.03\n0.84