首页 > 解决方案 > 将行添加到数据框的部分

问题描述

我希望将数据框第一部分的行添加到数据框的其他部分,同时更改一列中的值。

例如,如果我将此作为输入数据框:

Type     Color    Size    Dimensions
Circle   Blue     Large   2D
Circle   Green    Small   3D
Circle   Black    Large   2D
Square   Red      Large   2D
Square   White    Small   3D
Triangle Red      Large   2D
Triangle White    Small   3D

我想将 Circle 行添加到其他形状(但将值 circle 替换为其各自的形状,正方形或三角形),所以它看起来像这样:

Type     Color    Size    Dimensions
Circle   Blue     Large   2D
Circle   Green    Small   3D
Circle   Black    Large   2D
Square   Red      Large   2D
Square   White    Small   3D
Square   Blue     Large   2D
Square   Green    Small   3D
Square   Black    Large   2D
Triangle Red      Large   2D
Triangle White    Small   3D
Triangle Blue     Large   2D
Triangle Green    Small   3D
Triangle Black    Large   2D

有没有一种简单的方法可以通过分组或合并来做到这一点?

标签: pythonpandasdataframe

解决方案


尝试:

# circle rows
circles = df.query('Type=="Circle"')

pd.concat([df] + [circles.assign(Type=t) for t in df.Type.unique() if t!='Circle'])

输出:

       Type  Color   Size Dimensions
0    Circle   Blue  Large         2D
1    Circle  Green  Small         3D
2    Circle  Black  Large         2D
3    Square    Red  Large         2D
4    Square  White  Small         3D
5  Triangle    Red  Large         2D
6  Triangle  White  Small         3D
0    Square   Blue  Large         2D
1    Square  Green  Small         3D
2    Square  Black  Large         2D
0  Triangle   Blue  Large         2D
1  Triangle  Green  Small         3D
2  Triangle  Black  Large         2D

推荐阅读