[英]Fetch value from a row by looping with certain groupby condition in Pandas
我有一個看起來像這樣的 dataframe:
uid date value
573 2019-09-01 0.0
573 2019-09-23 22.0
557 2019-08-20 0.0
557 2019-08-25 5.0
557 2019-09-05 11.0
556 2019-08-24 0.0
556 2019-09-05 12.0
550 2019-08-27 0.0
550 2019-08-29 2.0
550 2019-09-11 13.0
532 2019-07-29 0.0
532 2019-07-31 2.0
我需要為每個用戶獲取第二個值(這意味着用戶573為22.0 ,用戶557為5.0 ,依此類推)。
我是 python 的新手,無法理解 groupby iterrows 或其他。 任何人都可以幫忙嗎?
首先確保數據按預期排序:
df = df.sort_values(['uid', 'date'])
然后只獲取每個工作人員的第二行(之前的那個是相同的uid
,但之前的那個不是相同的uid
)使用:
df[(df['uid'] == df['uid'].shift()) & (df['uid'] != df['uid'].shift(2))][['uid', 'value']]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.