python - Pandas :在MultiIndex数据框中的每个索引之后添加一个空行

标签 python python-3.x pandas dataframe multi-index

考虑以下df:

              IA1  IA2  IA3
Name Subject               
Abc  DS        45   43   34
     DMS       43   23   45
     ADA       32   46   36
Bcd  BA        45   35   37
     EAD       23   45   12
     DS        23   35   43
Cdf  EAD       34   33   23
     ADA       12   34   25
如何在每个Name索引之后添加一个空行?
预期输出:
              IA1  IA2  IA3
Name Subject               
Abc  DS        45   43   34
     DMS       43   23   45
     ADA       32   46   36

Bcd  BA        45   35   37
     EAD       23   45   12
     DS        23   35   43

Cdf  EAD       34   33   23
     ADA       12   34   25
     

最佳答案

使用自定义函数在 GroupBy.apply 中添加空行:

def f(x):
    x.loc[('', ''), :] = ''
    return x
或者:
def f(x):
    return x.append(pd.DataFrame('', columns=df.columns, index=[(x.name, '')]))
df = df.groupby(level=0, group_keys=False).apply(f)
print (df)
             IA1 IA2 IA3
Name Subject            
Abc  DS       45  43  34
     DMS      43  23  45
     ADA      32  46  36
                        
Bcd  BA       45  35  37
     EAD      23  45  12
     DS       23  35  43
                        
Cdf  EAD      34  33  23
     ADA      12  34  25
                        

关于python - Pandas :在MultiIndex数据框中的每个索引之后添加一个空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65679439/

相关文章:

python - 在 Tkinter Python 中测量字符串的高度?

python - 如何使用注释返回多个值?

python - 如何在 Keras 中设置适当的模型输入形状

python - 推荐的 PyUnit 教程?

python - 为什么从 python 脚本和 AWS CLI 收到的启动配置数量存在差异?

python - 列出当前目录的上次创建日期

python - 如何在一行中的至少一个元素中选择包含特定值的行?

python - 将 Pandas 系列列表转换为 numpy 数组

python - 如何检查 Pandas 中两个或多个重复值后的数据是否丢失并用以前的值替换丢失的值?

python - 使用列中的先前值和 pandas 中的一些计算来填充列