[英]How can I add one row for each group in pandas dataframe?
我現在的 df 看起來像那樣
地區 | 描述 | 材料 | 輸入 |
---|---|---|---|
英國 | 瓶子 | #1 | 500 |
英國 | 帽 | #5 | 20 |
印度 | 瓶子 | #1 | 400 |
印度 | 帽 | #5 | 2個 |
想要一個 df2 是這樣的:
地區 | 描述 | 材料 | 輸入 |
---|---|---|---|
英國 | 瓶子 | #1 | 500 |
英國 | 帽 | #5 | 20 |
英國 | 其他 | #7 | 北美 |
印度 | 瓶子 | #1 | 400 |
印度 | 帽 | #5 | 2個 |
印度 | 其他 | #7 | 北美 |
我是 python 的新手。也許有一個簡單的解決方案或一個已經類似的案例,但我找不到任何東西
您可以使用groupby.tail
獲取每個組的最后一行,並使用assign
修改它們,然后將其連接到原始concat
並在重置時按索引排序:
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)
Output:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.