pandas 我如何在panda数据框中为每个组添加一行?

ih99xse1  于 2023-01-19  发布在  其他
关注(0)|答案(1)|浏览(129)

我当前的df如下所示
| 区域|描述|材料|输入|
| - ------|- ------|- ------|- ------|
| 联合 Realm |瓶|第一名|五百|
| 联合 Realm |盖|第五名|二十个|
| 印度|瓶|第一名|四百|
| 印度|盖|第五名|第二章|
希望df 2像这样:
| 区域|描述|材料|输入|
| - ------|- ------|- ------|- ------|
| 联合 Realm |瓶|第一名|五百|
| 联合 Realm |盖|第五名|二十个|
| 联合 Realm |其他|第七名|不适用|
| 印度|瓶|第一名|四百|
| 印度|盖|第五名|第二章|
| 印度|其他|第七名|不适用|
我是python新手,也许有简单的解决方案,或者已经有类似的案例,但我找不到任何东西

vhipe2zx

vhipe2zx1#

您可以使用groupby.tail获取每个组的最后一行,并使用assign修改它们,然后使用concat将其修改为原始DataFrame,并在重置时按索引排序:

out = pd.concat([df,
                 df.groupby('Region', sort=False, as_index=False).tail(1)
                   .assign(Descript='other', Material='#7', Input='NA')]
               ).sort_index(ignore_index=True)

输出:

Region Descript Material Input
0     UK   Bottle       #1   500
1     UK      Cap       #5    20
2     UK    other       #7    NA
3  India   Bottle       #1   400
4  India      Cap       #5     2
5  India    other       #7    NA

相关问题