簡體   English   中英

如何為 pandas dataframe 中的每一組添加一行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM