簡體   English   中英

獲取每個熊貓 cloumn 值的最后條件值

[英]Get Last condition value for each pandas cloumn value

我有一個像這樣的 Df:

date_from date_to item_id VALUE_NEW VALUE_OLD 成本變量
1900 年 1 月 1 日 00:00:00 2022 年 11 月 3 日 15:31:18 452953 5366,46 4024,71 33.34%
2022 年 11 月 3 日 15:31:18 2200 年 1 月 1 日 00:00:00 452953 9122,57 5366,46 69.99%
1900 年 1 月 1 日 00:00:00 2022 年 11 月 3 日 15:31:18 452954 5366,46 4024,71 33.34%
2022 年 11 月 3 日 15:31:18 2200 年 1 月 1 日 00:00:00 452954 9122,57 5366,46 69.99%
1900 年 1 月 1 日 00:00:00 21/7/2021 16:30:46 452961 6170,98 4024,71 53.33%
21/7/2021 16:30:46 2022 年 11 月 3 日 15:31:09 452961 5312 6170,98 13.92%
2022 年 11 月 3 日 15:31:09 2200 年 1 月 1 日 00:00:00 452961 9122,57 5312 71.74%
1900 年 1 月 1 日 00:00:00 13/10/2021 14:39:55 801286 4052,1 1332,8 204.03%
13/10/2021 14:39:55 13/10/2021 14:43:09 801286 4,4732 4052,1 99.89%
13/10/2021 14:43:09 2022 年 3 月 2 日 17:16:23 801286 4473,2 4,4732 99900.00%
2022 年 3 月 2 日 17:16:23 2200 年 1 月 1 日 00:00:00 801286 4946,8 4473,2 10.59%

我需要檢查每個 item_id,並獲取 cost_var > 60% 的最后一行。 如果它是最后一行,那沒關系,但如果有下一行,它 <60%,我必須刪除最后一行>60%。 輸出應如下所示:

date_from date_to item_id VALUE_NEW VALUE_OLD 成本變量
2022 年 11 月 3 日 15:31:18 2200 年 1 月 1 日 00:00:00 452953 9122,57 5366,46 69.99%
2022 年 11 月 3 日 15:31:18 2200 年 1 月 1 日 00:00:00 452954 9122,57 5366,46 69.99%
2022 年 11 月 3 日 15:31:09 2200 年 1 月 1 日 00:00:00 452961 9122,57 5312 71.74%

項目 802186 沒有返回任何值,因為最后一行>60% (99900.00%) 有下一行,並且 cost_var<60% (10.59%)...有可能嗎? 我找不到解決它的方法。

嘗試這個

# read data
df = pd.read_clipboard()
# select the last row of each item_id and only select ones where cost_var > 60%
df.groupby(df.item_id, as_index=False).last().query("cost_var.str.rstrip('%').astype('float')>60", engine='python')

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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